

摘? 要:網站的有效負載,是網站性能的一項重要指標,也是軟件質量的一個重要影響因素,相對于人工測試方式,自動化測試方式更加合理,能夠通過模擬用戶操作、不斷加壓的方式獲取網站的有效負載,從而推測出現有資源情況下,網站所能提供的最大負載。本文充分利用自動化測試工具LoadRunner,大量模擬用戶訪問網站頁面操作,對學習培訓系統進行了負載測試。根據獲取的測試結果,初步評估該系統的性能瓶頸,并針對此瓶頸提出改善系統性能的建議。
關鍵詞:LoadRunner;負載測試;軟件測試
中圖分類號:TP393.092? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)15-0012-03
Realization of Web Load Automation Test Based on LoadRunner
LIU Junbo
(Open Laboratory of Air Traffic Control Software Development and Application,Middle-South China Air Traffic Management Bureau,Guangzhou? 510403,China)
Abstract:The payload of a website is an important indicator of website performance and an important factor in software quality. Compared with the manual test method,the automated test method is more reasonable,and it can obtain the website through simulated user operation and constant pressure. The payload,which infers the maximum load that the site can provide in the presence of resources. This article makes full use of the automated test tool LoadRunner,a large number of simulated user access to the website page operations,load testing of the learning training system. And based on the obtained test results,the performance bottleneck of the system is initially evaluated,and suggestions for improving system performance are proposed for this bottleneck.
Keywords:LoadRunner;load test;software test
0? 引? 言
隨著網絡技術的日新月異以及網站用戶的不斷增長,對Web應用系統的性能要求也越來越高。網站負載測試是評價網站性能的重要手段,是為了測試Web應用系統在某一場景下的性能,通過承壓測試,真實地反映出網站的有效負載,從而提供網站資源需求的參考依據。
1? 相關概念
軟件測試涉及軟件開發的各個階段,需要針對軟件的各個功能的規格說明,設計出對應的一批測試用例。再選取最佳的測試方法來進行軟件測試,從而最大程度地發現軟件缺陷,保證軟件的質量。而負載測試僅是軟件測試的一個環節,通過該環節,可以直觀地檢測出軟件系統的承壓能力。
1.1? 測試方法
軟件測試貫穿于軟件開發的整個過程,在軟件研發的不同階段,需要根據具體情況,選取不同的測試方法。軟件開發的前期,采用靜態測試方法,只針對源代碼進行分析;軟件開發后期,采用動態測試,設計測試用例,依據用例進行軟件測試,從而判定執行結果是否符合預期,對程序的正確性、可靠性和有效性進行核驗。
1.2? 測試流程
測試流程需遵循軟件工程中所明確的軟件測試規范。
(1)制定詳細的測試計劃:包括測試目標、測試資源、測試進度、測試工具等。
(2)測試對象分析:通過分析測試系統,了解其應用場景,從而設計其極限壓力值。
(3)編寫測試案例:通過前期分析,針對系統中的各個功能模塊,編寫相應的測試案例。測試人員嚴格按此執行。
(4)搭建測試環境:所搭建的測試環境,需與系統正式運行環境盡量保持一致。
(5)系統測試:按照測試案例,對系統進行壓力測試。
(6)測試結果分析:在壓力測試完成之后,匯總測試所得的數據,編寫測試報告,盡量以表格、圖形等形式進行描述,并對測試結果進行深入分析,查找出系統的瓶頸所在,提出系統的改進意見。
1.3? 測試工具
LoadRunner是一套專業測試工具,能夠預測系統行為,并優化系統性能。通過模擬大量用戶實時并發的場景,輔以實時性能監視來確認和查找問題。主要包含了三大組件:虛擬用戶生成器、控制器、結果分析器。
2? 案例分析
2.1? 測試環境
2.1.1? 軟件環境
Web服務器軟件:Windows Server 2003(+SP1)簡體中文版 IIS 6.0或以上版本、NET Framework 2.0。
數據庫服務器軟件:Microsoft SQL Server 2005企業版。
2.1.2? 硬件環境
服務器:Dell R910一臺。
存儲:Dell EqualLogic PS6000E一臺。
2.2? 測試方案
2.2.1? 非視頻類測試
模擬用戶行為:
(1)打開首頁,用域賬號進行登錄。
(2)“在線課程”中,點擊學習“863空管項目”課程,在彈出的課件選取頁面中選擇某一課件進行學習,學習時長設置為2分鐘。
(3)達到學習時長后,點擊“結束學習”,查看學習記錄。
(4)退出系統。
錄制上述行為,模擬不同的并發用戶數量:200、300、500、600、700、800、900,對系統持續加壓。
2.2.2? 視頻類測試
模擬用戶行為:
(1)打開首頁,用域賬號進行登錄。
(2)進行一次課程查詢操作。
(3)“在線課程”中,點擊學習“外網VPN學習”課程,在彈出的窗口中選擇“計算機網絡”課件(流媒體課件)進行學習,學習時長設置為5分鐘。
(4)達到學習時長后,點擊“結束學習”,查看學習記錄。
(5)退出系統。
錄制上述行為,模擬不同的并發用戶數量:20、30、40、50、60、70,對系統持續加壓。
2.3? 測試結果
2.3.1? 參數說明
模擬用戶:通過LoadRunner虛擬出多用戶訪問Web網站。
事務響應時間(s):從登錄系統開始,直至退出系統為止,定義為一個事務,記錄事務執行所需要的時間。
每秒點擊數(次):每秒內,由虛擬用戶向Web服務器提交的HTTP請求數。
每秒HTTP響應數:每秒內,由Web服務器響應返回的HTTP狀態代碼數。
連接數:測試過程中打開的TCP/IP連接數。
2.3.2? 非視頻類測試結果
如圖1所示,當訪問量達到500人次時,未出現訪問失敗的情況,此時系統運行穩定;隨著訪問量的增加,訪問失敗的數值也相應增加,當訪問量達到800人次時,成功訪問量處于峰值,將近700人次。當大于800人次時,成功訪問量急劇減少。即系統的有效負載量為500人次,最大負載量為700人次。
當訪問量達到800人次時,服務器CPU占用在88%左右,物理內存剩余200MB,此時的網絡吞吐量維持在3MB/s(發送)、500KB/s(接收);此時,用戶對于掛載的存放課件分區(atmb-learning-courseware)的訪問量較存放數據庫mdf文件以及log文件分區的訪問量明顯增多;對SQL Server的訪問多以查詢操作為主。
2.3.3? 視頻類測試結果
如圖2所示,當訪問量逐漸達到50人次時,未出現訪問失敗的情況;隨著訪問量的增加,訪問失敗的數值也相應增加,當訪問量接近60人次時,成功訪問量處于峰值,將近55人次。當訪問量大于60人次時,成功訪問量急劇減少。即系統的有效負載量為50人次,最大負載量為55人次。
當訪問量達到60人次時,CPU占用在27%左右,物理內存剩余176MB,此時的網絡吞吐量維持在4MB/s(發送)、170KB/s(接收);此時,用戶對于掛載的存放課件分區(atmb-learning-courseware)的訪問量較存放數據庫mdf文件以及log文件分區的訪問量明顯增多;對SQL Server的訪問多以查詢操作為主。
2.3.4? 測試結論
通過結合視頻類、非視頻類測試結果,發現當訪問量達到峰值時,服務器內存消耗較大,只剩余200MB左右的內存容量;此時,CPU、網絡、SQL Server連接均正常;IIS連接波動較明顯;當系統訪問人數超過峰值時,訪問成功數迅速下降,因此建議如下:
(1)適當增加服務器的內存,以緩解內存資源不足的問題。
(2)單個IIS可承載連接數有限,可采用負載均衡技術,搭建負載均衡群集,由群集多個節點共同分擔負載。
3? 結? 論
網站負載測試,是為了測量網站在特定場景下的極限性能,從而保證網站在各種情況下均能夠正常工作。單純地依靠手工來進行測試,是無法獲取到準確測試數據的。必須結合強大的自動化測試工具。在實際的測試環境中,可以通過其模擬實際用戶的操作、不斷向系統加壓的方式來獲取監控數據。通過分析所得數據,找出系統瓶頸。從而為系統的功能擴展、性能提升提供依據。
參考文獻:
[1] 朱少明.軟件測試方法和技術 [M].北京:清華大學出版社,2005.
[2] 李東昱,苗放.LoadRunner在Web應用程序性能測試中的應用 [J].軟件導刊,2007(19):49-51.
[3] 丁秀蘭.Web測試中性能測試工具的研究與應用 [D].太原:太原理工大學,2008.
[4] 陳小輝.Web性能測試技術的研究與實踐 [D].上海:華東師范大學,2010.
作者簡介:劉俊波(1983-),男,漢族,湖南益陽人,研發人員,主任工程師,碩士研究生,研究方向:民航空管應用軟件。