陳磊 高熾揚(yáng)
中國軟件評測中心 北京 100048
近些年來,隨著國家支持力度的日益加大,我國國產(chǎn)基礎(chǔ)軟件得到了快速發(fā)展,產(chǎn)品也越來越成熟。目前,已經(jīng)有很多集成應(yīng)用采用了國產(chǎn)基礎(chǔ)軟件,這也對基于國產(chǎn)基礎(chǔ)軟件的集成應(yīng)用的關(guān)鍵測試技術(shù)的發(fā)展提出了迫切需求。為了更加準(zhǔn)確、更加有效、更加及時的對國產(chǎn)基礎(chǔ)軟件集成應(yīng)用的性能進(jìn)行評價,診斷性能瓶頸,助力國產(chǎn)基礎(chǔ)軟件的發(fā)展。本文結(jié)合國產(chǎn)基礎(chǔ)軟件的特點(diǎn),本文介紹了一種國產(chǎn)基礎(chǔ)軟件集成應(yīng)用性能測試平臺,并通過對國產(chǎn)基礎(chǔ)軟件集成應(yīng)用的性能測試對該平臺進(jìn)行了驗證。
國產(chǎn)基礎(chǔ)軟件集成應(yīng)用性能測試平臺主要包含了基于HTTP協(xié)議的性能測試工具、國產(chǎn)操作系統(tǒng)資源監(jiān)控工具和集成應(yīng)用故障診斷工具。這三個工具之間采用松耦合的方式設(shè)計,之間通過文本文件進(jìn)行數(shù)據(jù)的合并。國家基礎(chǔ)軟件集成應(yīng)用性能測試平臺系統(tǒng)結(jié)構(gòu)圖如圖1所示。
基于HTTP協(xié)議的性能測試工具是由HTTP消息記錄端和壓力控制兩部分組成,其中HTTP消息記錄模塊主要是捕獲用戶操作的會話過程,記錄下對應(yīng)會話的用戶行為,并生成一時間序列為基準(zhǔn)的腳本文件。壓力控制主要是對性能測試的啟動、停止等控制以及顯示測試狀態(tài)、控制測試進(jìn)程和設(shè)置測試策略等輔助性能測試(如圖2)。
圖1 國產(chǎn)基礎(chǔ)軟件集成應(yīng)用性能測試平臺結(jié)構(gòu)圖
該性能測試工具主要通過代理服務(wù)器截獲用戶訪問的行為,通過格式化模塊將其轉(zhuǎn)換成本統(tǒng)一格式后,再將其按照時序先后保存到腳本當(dāng)中。壓力控制部分主要通過多線程技術(shù)模擬多用戶同時訪問的方式進(jìn)行性能測試,同時通過委托方法將各個用戶行為的響應(yīng)時間傳遞給性能測試工具,并進(jìn)行記錄(如圖3)。
圖2 基于 HTTP協(xié)議的性能測試工具數(shù)據(jù)流圖
圖3 HTTP消息記錄模塊流程圖
該性能測試工具是通過記錄在測試腳本文件中的用戶行為回放實現(xiàn)用戶行為的模擬的,通過多線程實現(xiàn)了并發(fā)的模式(如圖4)。
圖4 基于 HTTP協(xié)議的性能測試工具截圖
國產(chǎn)服務(wù)器操作系統(tǒng)資源監(jiān)控工具采用了SSH協(xié)議遠(yuǎn)程連接被監(jiān)控服務(wù)器操作系統(tǒng),通過運(yùn)行獲取虛擬文件系統(tǒng)中對應(yīng)的系統(tǒng)資源信息,并以文本的方式傳輸監(jiān)控結(jié)果實現(xiàn)服務(wù)器資源的數(shù)據(jù)采集(如圖5)。
圖5 國產(chǎn)服務(wù)器操作系統(tǒng)資源監(jiān)控工具數(shù)據(jù)流圖
本監(jiān)控工具通過多線程方式實現(xiàn)了同時監(jiān)控多臺國產(chǎn)服務(wù)器操作系統(tǒng),通過應(yīng)用委托的方式將多線程監(jiān)控結(jié)果回傳給UI顯示。國產(chǎn)服務(wù)器操作系統(tǒng)資源監(jiān)控工具總體流程圖如圖6所示。
圖6 國產(chǎn)服務(wù)器操作系統(tǒng)資源監(jiān)控工具流程圖
國產(chǎn)服務(wù)器操作系統(tǒng)資源監(jiān)控工具依據(jù)上述算法,通過配監(jiān)控服務(wù)器配置信息表,建立多線程啟動監(jiān)控算法。同時通過動態(tài)曲線控件動態(tài)的展現(xiàn)各個指標(biāo)的曲線實施圖形。程序截圖如圖7所示。
圖7 國產(chǎn)服務(wù)器操作系統(tǒng)資源監(jiān)控工具截圖
集成應(yīng)用故障診斷工具是C/S結(jié)構(gòu)的工具,信息收集服務(wù)部署到國產(chǎn)中間件上的診斷服務(wù)來進(jìn)行的,診斷服務(wù)通過JMX收集所有運(yùn)行在該中間件上的應(yīng)用的狀態(tài)。通過網(wǎng)絡(luò)將收集到的數(shù)據(jù)傳輸給客戶端,客戶端通過診斷分析模型對運(yùn)行在中間件上各個應(yīng)用進(jìn)行分析,同時顯示診斷分析結(jié)果(如圖8)。
圖8 集成應(yīng)用故障診斷工具數(shù)據(jù)流圖
集成應(yīng)用故障診斷工具的診斷分析模型是共分為兩層分析,首先通過分析是否存在異常信息預(yù)警服務(wù)錯誤,其次通過預(yù)設(shè)資源閥值預(yù)警資源過度消耗。通過故障映射表進(jìn)行故障信息診斷結(jié)果(如圖9)。
該診斷工具通過將信息收集服務(wù)部署到過程中間件之上,經(jīng)由客戶端輸入中間件WEB服務(wù)地址和端口號與信息收集服務(wù)進(jìn)行通信,再有本地算法進(jìn)行診斷分析,同時顯示診斷結(jié)果,并將故障服務(wù)高亮顯示,程序截圖如圖10。
圖9 診斷分析模塊流程圖流程圖
圖10 集成應(yīng)用故障診斷工具客戶端截圖
本文介紹了一種針對國產(chǎn)基礎(chǔ)軟件集成應(yīng)用的性能測試平臺,該平臺包含了性能測試工具、監(jiān)控工具和診斷工具,同時介紹了各個工具的工作流程、設(shè)計方法和工作原理。目前該平臺已在部分國產(chǎn)基礎(chǔ)軟件集成應(yīng)用平臺的系統(tǒng)驗收測試中得到了應(yīng)用,且取得了初步成果,該平臺的正確性、可用性等都得到了驗證,但是由于該平臺還處于不斷完善的階段,以便能夠更好地應(yīng)用于國產(chǎn)基礎(chǔ)軟件集成應(yīng)用性能測試中。
[1] 多線程[EB/OL].http://baike.baidu.com/view/65706.htm.
[2] 委托[EB/OL].baike.baidu.com/view/159798.htm.
[3] 張杰,戴英俠.SSH協(xié)議的發(fā)展與應(yīng)用研究[J].計算機(jī)工程.2002.
[4] 徐健,王濤.HTTP/1.1的分析[J].西南師范大學(xué)學(xué)報:自然科學(xué)版.2004.
[5] 楊柳,李志蜀,王逸飛.用JMX實現(xiàn)可配置的動態(tài)數(shù)據(jù)處理流程
[J].計算機(jī)應(yīng)用與軟件.2004.
[6] 文震,洪玫,李群慧.JMX技術(shù)在網(wǎng)絡(luò)監(jiān)控中的應(yīng)用[J].計算機(jī)應(yīng)用研究.2004.