摘? 要:網(wǎng)站的有效負載,是網(wǎng)站性能的一項重要指標,也是軟件質(zhì)量的一個重要影響因素,相對于人工測試方式,自動化測試方式更加合理,能夠通過模擬用戶操作、不斷加壓的方式獲取網(wǎng)站的有效負載,從而推測出現(xiàn)有資源情況下,網(wǎng)站所能提供的最大負載。本文充分利用自動化測試工具LoadRunner,大量模擬用戶訪問網(wǎng)站頁面操作,對學習培訓系統(tǒng)進行了負載測試。根據(jù)獲取的測試結(jié)果,初步評估該系統(tǒng)的性能瓶頸,并針對此瓶頸提出改善系統(tǒng)性能的建議。
關(guān)鍵詞: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? 引? 言
隨著網(wǎng)絡(luò)技術(shù)的日新月異以及網(wǎng)站用戶的不斷增長,對Web應(yīng)用系統(tǒng)的性能要求也越來越高。網(wǎng)站負載測試是評價網(wǎng)站性能的重要手段,是為了測試Web應(yīng)用系統(tǒng)在某一場景下的性能,通過承壓測試,真實地反映出網(wǎng)站的有效負載,從而提供網(wǎng)站資源需求的參考依據(jù)。
1? 相關(guān)概念
軟件測試涉及軟件開發(fā)的各個階段,需要針對軟件的各個功能的規(guī)格說明,設(shè)計出對應(yīng)的一批測試用例。再選取最佳的測試方法來進行軟件測試,從而最大程度地發(fā)現(xiàn)軟件缺陷,保證軟件的質(zhì)量。而負載測試僅是軟件測試的一個環(huán)節(jié),通過該環(huán)節(jié),可以直觀地檢測出軟件系統(tǒng)的承壓能力。
1.1? 測試方法
軟件測試貫穿于軟件開發(fā)的整個過程,在軟件研發(fā)的不同階段,需要根據(jù)具體情況,選取不同的測試方法。軟件開發(fā)的前期,采用靜態(tài)測試方法,只針對源代碼進行分析;軟件開發(fā)后期,采用動態(tài)測試,設(shè)計測試用例,依據(jù)用例進行軟件測試,從而判定執(zhí)行結(jié)果是否符合預期,對程序的正確性、可靠性和有效性進行核驗。
1.2? 測試流程
測試流程需遵循軟件工程中所明確的軟件測試規(guī)范。
(1)制定詳細的測試計劃:包括測試目標、測試資源、測試進度、測試工具等。
(2)測試對象分析:通過分析測試系統(tǒng),了解其應(yīng)用場景,從而設(shè)計其極限壓力值。
(3)編寫測試案例:通過前期分析,針對系統(tǒng)中的各個功能模塊,編寫相應(yīng)的測試案例。測試人員嚴格按此執(zhí)行。
(4)搭建測試環(huán)境:所搭建的測試環(huán)境,需與系統(tǒng)正式運行環(huán)境盡量保持一致。
(5)系統(tǒng)測試:按照測試案例,對系統(tǒng)進行壓力測試。
(6)測試結(jié)果分析:在壓力測試完成之后,匯總測試所得的數(shù)據(jù),編寫測試報告,盡量以表格、圖形等形式進行描述,并對測試結(jié)果進行深入分析,查找出系統(tǒng)的瓶頸所在,提出系統(tǒng)的改進意見。
1.3? 測試工具
LoadRunner是一套專業(yè)測試工具,能夠預測系統(tǒng)行為,并優(yōu)化系統(tǒng)性能。通過模擬大量用戶實時并發(fā)的場景,輔以實時性能監(jiān)視來確認和查找問題。主要包含了三大組件:虛擬用戶生成器、控制器、結(jié)果分析器。
2? 案例分析
2.1? 測試環(huán)境
2.1.1? 軟件環(huán)境
Web服務(wù)器軟件:Windows Server 2003(+SP1)簡體中文版 IIS 6.0或以上版本、NET Framework 2.0。
數(shù)據(jù)庫服務(wù)器軟件:Microsoft SQL Server 2005企業(yè)版。
2.1.2? 硬件環(huán)境
服務(wù)器:Dell R910一臺。
存儲:Dell EqualLogic PS6000E一臺。
2.2? 測試方案
2.2.1? 非視頻類測試
模擬用戶行為:
(1)打開首頁,用域賬號進行登錄。
(2)“在線課程”中,點擊學習“863空管項目”課程,在彈出的課件選取頁面中選擇某一課件進行學習,學習時長設(shè)置為2分鐘。
(3)達到學習時長后,點擊“結(jié)束學習”,查看學習記錄。
(4)退出系統(tǒng)。
錄制上述行為,模擬不同的并發(fā)用戶數(shù)量:200、300、500、600、700、800、900,對系統(tǒng)持續(xù)加壓。
2.2.2? 視頻類測試
模擬用戶行為:
(1)打開首頁,用域賬號進行登錄。
(2)進行一次課程查詢操作。
(3)“在線課程”中,點擊學習“外網(wǎng)VPN學習”課程,在彈出的窗口中選擇“計算機網(wǎng)絡(luò)”課件(流媒體課件)進行學習,學習時長設(shè)置為5分鐘。
(4)達到學習時長后,點擊“結(jié)束學習”,查看學習記錄。
(5)退出系統(tǒng)。
錄制上述行為,模擬不同的并發(fā)用戶數(shù)量:20、30、40、50、60、70,對系統(tǒng)持續(xù)加壓。
2.3? 測試結(jié)果
2.3.1? 參數(shù)說明
模擬用戶:通過LoadRunner虛擬出多用戶訪問Web網(wǎng)站。
事務(wù)響應(yīng)時間(s):從登錄系統(tǒng)開始,直至退出系統(tǒng)為止,定義為一個事務(wù),記錄事務(wù)執(zhí)行所需要的時間。
每秒點擊數(shù)(次):每秒內(nèi),由虛擬用戶向Web服務(wù)器提交的HTTP請求數(shù)。
每秒HTTP響應(yīng)數(shù):每秒內(nèi),由Web服務(wù)器響應(yīng)返回的HTTP狀態(tài)代碼數(shù)。
連接數(shù):測試過程中打開的TCP/IP連接數(shù)。
2.3.2? 非視頻類測試結(jié)果
如圖1所示,當訪問量達到500人次時,未出現(xiàn)訪問失敗的情況,此時系統(tǒng)運行穩(wěn)定;隨著訪問量的增加,訪問失敗的數(shù)值也相應(yīng)增加,當訪問量達到800人次時,成功訪問量處于峰值,將近700人次。當大于800人次時,成功訪問量急劇減少。即系統(tǒng)的有效負載量為500人次,最大負載量為700人次。
當訪問量達到800人次時,服務(wù)器CPU占用在88%左右,物理內(nèi)存剩余200MB,此時的網(wǎng)絡(luò)吞吐量維持在3MB/s(發(fā)送)、500KB/s(接收);此時,用戶對于掛載的存放課件分區(qū)(atmb-learning-courseware)的訪問量較存放數(shù)據(jù)庫mdf文件以及l(fā)og文件分區(qū)的訪問量明顯增多;對SQL Server的訪問多以查詢操作為主。
2.3.3? 視頻類測試結(jié)果
如圖2所示,當訪問量逐漸達到50人次時,未出現(xiàn)訪問失敗的情況;隨著訪問量的增加,訪問失敗的數(shù)值也相應(yīng)增加,當訪問量接近60人次時,成功訪問量處于峰值,將近55人次。當訪問量大于60人次時,成功訪問量急劇減少。即系統(tǒng)的有效負載量為50人次,最大負載量為55人次。
當訪問量達到60人次時,CPU占用在27%左右,物理內(nèi)存剩余176MB,此時的網(wǎng)絡(luò)吞吐量維持在4MB/s(發(fā)送)、170KB/s(接收);此時,用戶對于掛載的存放課件分區(qū)(atmb-learning-courseware)的訪問量較存放數(shù)據(jù)庫mdf文件以及l(fā)og文件分區(qū)的訪問量明顯增多;對SQL Server的訪問多以查詢操作為主。
2.3.4? 測試結(jié)論
通過結(jié)合視頻類、非視頻類測試結(jié)果,發(fā)現(xiàn)當訪問量達到峰值時,服務(wù)器內(nèi)存消耗較大,只剩余200MB左右的內(nèi)存容量;此時,CPU、網(wǎng)絡(luò)、SQL Server連接均正常;IIS連接波動較明顯;當系統(tǒng)訪問人數(shù)超過峰值時,訪問成功數(shù)迅速下降,因此建議如下:
(1)適當增加服務(wù)器的內(nèi)存,以緩解內(nèi)存資源不足的問題。
(2)單個IIS可承載連接數(shù)有限,可采用負載均衡技術(shù),搭建負載均衡群集,由群集多個節(jié)點共同分擔負載。
3? 結(jié)? 論
網(wǎng)站負載測試,是為了測量網(wǎng)站在特定場景下的極限性能,從而保證網(wǎng)站在各種情況下均能夠正常工作。單純地依靠手工來進行測試,是無法獲取到準確測試數(shù)據(jù)的。必須結(jié)合強大的自動化測試工具。在實際的測試環(huán)境中,可以通過其模擬實際用戶的操作、不斷向系統(tǒng)加壓的方式來獲取監(jiān)控數(shù)據(jù)。通過分析所得數(shù)據(jù),找出系統(tǒng)瓶頸。從而為系統(tǒng)的功能擴展、性能提升提供依據(jù)。
參考文獻:
[1] 朱少明.軟件測試方法和技術(shù) [M].北京:清華大學出版社,2005.
[2] 李東昱,苗放.LoadRunner在Web應(yīng)用程序性能測試中的應(yīng)用 [J].軟件導刊,2007(19):49-51.
[3] 丁秀蘭.Web測試中性能測試工具的研究與應(yīng)用 [D].太原:太原理工大學,2008.
[4] 陳小輝.Web性能測試技術(shù)的研究與實踐 [D].上海:華東師范大學,2010.
作者簡介:劉俊波(1983-),男,漢族,湖南益陽人,研發(fā)人員,主任工程師,碩士研究生,研究方向:民航空管應(yīng)用軟件。