張 瑩
(河北軟件職業(yè)技術學院,河北 保定 071002)
在針對B/S結構的信息系統(tǒng)進行性能測試的時候,往往會遇到很多棘手的問題。本文采用的是自動化性能測試工具LoadRunner調用自動化功能測試工具Quick Test Professional腳本的方法實現(xiàn)性能測試,并針對發(fā)現(xiàn)的問題進行調優(yōu)。
測試對象為基于WEB的銷售與管理系統(tǒng),該系統(tǒng)由基礎信息模塊、采購管理模塊、庫存管理模塊、商品銷售模塊、查詢統(tǒng)計模塊、往來管理模塊、系統(tǒng)設置模塊等部分組成?;贛VC模式,Struts和Hibernate集成的體系結構,數(shù)據(jù)庫使用SQL Server。
性能測試中的場景設計是實施性能測試的基礎,是一種用來模擬大量用戶操作的技術手段,只有合理地設計測試場景才能獲得有價值的測試數(shù)據(jù)。LoadRunner是一種適用于各種體系架構的自動負載測試工具,它能預測系統(tǒng)行為并優(yōu)化系統(tǒng)性能。本次測試指標為:(1)響應時間采用業(yè)界2/5/10標準測試;(2)系統(tǒng)資源占用以不超過70%為標準;(3)事務成功率采用一般標準90%。針對本系統(tǒng)實際需求設計場景如下。
業(yè)務場景根據(jù)系統(tǒng)功能分為單一業(yè)務和混合業(yè)務兩類,其中單一業(yè)務場景主要是考慮到單一業(yè)務流程而設計的,考察某一業(yè)務在各種情況下的網(wǎng)絡響應時間、系統(tǒng)資源的占用情況、事務成功率等?;旌蠘I(yè)務場景主要是為了模擬系統(tǒng)真實生產(chǎn)環(huán)境而設計的,考察整個系統(tǒng)在各種客戶操作情況下的網(wǎng)絡響應時間、系統(tǒng)資源的占用情況、事務成功率等。根據(jù)系統(tǒng)需求分析設計本次測試設計腳本,如圖1所示(以登陸模塊為例)。
使用QTP測試登陸模塊基本功能,測試用例設計如下:
輸入正確的用戶名和密碼;
輸入正確的用戶名,錯誤的密碼;
輸入正確的用戶名,不輸入密碼;
輸入空的用戶名和密碼;
輸入空的用戶名,正確的密碼;
輸入錯誤的用戶名;
不同賬號在同一臺機器上登陸;
同一個賬號在同一臺機器上登陸;
同一個賬號在不同機器上登陸;
用戶名和密碼是否大小寫敏感;
用戶名和密碼是否有長度限制;
用戶名和密碼是否有類型限制。
(1)鏈接測試
測試所有連接是否為正確頁面;
圖1 測試腳本(部分代碼)
測試連接頁面是否存在;
測試是否有孤立頁面。
(2)表單測試
用戶提交信息是否完整;
Cookies是否正常工作;
數(shù)據(jù)庫測試(數(shù)據(jù)一致性錯誤和輸出錯誤)。
測試結果顯示基本功能正常,將輸入正確用戶名和口令成功登陸后而完成的一次該系統(tǒng)使用的全過程記錄成腳本并保存,重復操作相同動作后再保存一份。針對兩份腳本使用Windff比較(如圖2所示),發(fā)現(xiàn)服務器端有動態(tài)數(shù)據(jù)產(chǎn)生,根據(jù)提示位置對測試腳本中捕獲的數(shù)據(jù)進行參數(shù)化設置。
圖2 相同腳本比較
(3)LoadRunner性能測試場景模型(以登錄模塊為例)見表1。
腳本執(zhí)行完成后,收集數(shù)據(jù)(如圖3所示)。從圖3數(shù)據(jù)結果可以看出各項事務全部通過(Fail為0),加載全部虛擬用戶后,沒有產(chǎn)生錯誤。這表明該系統(tǒng)功能在加壓過程中正常,但有些時間數(shù)據(jù)稍長,查看各項數(shù)據(jù)迭加圖(圖4)后發(fā)現(xiàn)趨勢不穩(wěn)定。
圖4為虛擬用戶加載過程中的每秒點擊量和平均事務響應時間的一個迭加效果圖。從圖中可以看出,平均事務響應時間在用戶增加到最大數(shù)量時有所增加,中間有不穩(wěn)定現(xiàn)象,說明服務器端有不明原因的問題出現(xiàn)。
表1 場景模型設計
圖3 結果分析報告
圖4 每秒點擊量和平均事務響應時間迭加
查看Windows計數(shù)器捕捉到的數(shù)據(jù),其中CPU占用率在測試標準70%范圍內,內存不存在瓶頸,硬件系統(tǒng)正常。接下來查看頁面細分圖(見圖5),通過比較各個組件的響應時間,發(fā)現(xiàn)其中一項頁面下載時間過長,手動方式連接測試頁面連接速度仍然很慢,可以判斷網(wǎng)絡成為該系統(tǒng)性能的瓶頸。
整個系統(tǒng)測試完成后,測試結果及建議如下:
(1)登錄模塊
服務器當前可以處理標準級和負載級虛擬用戶并發(fā)活動,各項事務均能成功處理,滿足需求分析中的要求,完成確認測試。但是在極限級虛擬用戶并發(fā)時,登錄時間過長,平均達到75秒,系統(tǒng)資源超過安全指標,服務器端正常,建議通過提高服務器配置來優(yōu)化性能。
圖5 頁面細分(部分組件響應時間)
(2)基礎信息模塊
基本功能正常,在加壓過程中出現(xiàn)類似登錄模塊現(xiàn)象,建議同上。
(3)查詢統(tǒng)計模塊
進入查詢統(tǒng)計模塊后,當虛擬用戶數(shù)達到負載級后出現(xiàn)網(wǎng)絡傳輸時間過長,系統(tǒng)資源使用超過安全標準,頁面訪問有出錯問題。通過手動測試相應業(yè)務,發(fā)現(xiàn)時間仍然過長,確定和服務器無關,建議調整網(wǎng)絡狀況以優(yōu)化性能。
其他幾個模塊在此不進行詳細分析。本次測試覆蓋了系統(tǒng)的全部功能點,發(fā)現(xiàn)該系統(tǒng)基本功能正常,不存在明顯性能缺陷。但對未來發(fā)展考慮不足,系統(tǒng)的擴展性存在問題,建議針對服務器配置以及網(wǎng)絡狀況進行調整。
隨著WEB技術的廣泛應用,人們的需求不斷提高,系統(tǒng)中的功能也越來越復雜,保證質量成了頭等重要的問題。使用混合的WEB性能測試模型測試指標在度量系統(tǒng)準確性、預測有效性和定位系統(tǒng)中故障等方面起到了很好的作用,它能幫助軟件在部署到實際環(huán)境之前排除可能存在的問題,優(yōu)化系統(tǒng)的性能,滿足客戶的需求。
[1]明仲等.一種Web系統(tǒng)性能測試框架及其混合建模過程[J].計算機研究與發(fā)展,2010(7).
[2]劉荷花.WEB系統(tǒng)性能測試及工具優(yōu)化[J].電腦開發(fā)與應用,2010(9).
[3]陳小輝.WEB 性能測試技術探討[J].科技廣場,2011(1).
[4]李艷芹.基于web應用系統(tǒng)的性能測試及優(yōu)化[D].上海:東華大學,2011.