摘? 要: 系統(tǒng)的負載壓力是系統(tǒng)性能指標的一個重要方面。根據(jù)用戶對系統(tǒng)性能的需求設(shè)計了測試用例,用LoadRunner錄制測試腳本,模擬用戶并發(fā)訪問網(wǎng)站頁面操作,對蒙古語資源網(wǎng)進行了負載壓力測試。通過分析測試結(jié)果,初步評估該網(wǎng)站的性能瓶頸,并提出改善網(wǎng)站性能的建議。
關(guān)鍵詞: 負載壓力測試; Load Runner; 腳本; 性能測試
中圖分類號:TP311? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2022)05-89-03
Application and research of LoadRunner in Mongolian resource Web load pressure testing
Aodengbala
Abstract: The load pressure of a system is an important aspect of system performance index. Test cases are designed according to the user's requirements for system performance. Test scripts are recorded with LoadRunner. The concurrent operation of users to access Web pages are simulated, and load pressure test on Mongolian resources Web is carried out. By analyzing the test results, the performance bottleneck of the website is preliminary evaluated and some suggestions are put forward to improve the website performance.
Key words: load pressure testing; LoadRunner; scripts; performance testing
引言
隨著計算機技術(shù)和Web應用的日益普及,軟件已經(jīng)覆蓋人類生活的方方面面。因此,軟件質(zhì)量的重要性顯得日益突出。軟件測試是提高軟件質(zhì)量的一個重要手段[1]。GB/T25000.51-2016《就緒可用軟件產(chǎn)品(RUSP)的質(zhì)量要求和測試細則》中規(guī)定了軟件的八個產(chǎn)品質(zhì)量特性,即功能性、性能效率、兼容性、易用性、可靠性、信息安全性、維護性和可移植性[1]。其中性能效率主要從時間特性、資源利用性、容量等方面對軟件質(zhì)量提出了要求。隨著網(wǎng)絡應用技術(shù)的不斷發(fā)展,用戶對Web應用系統(tǒng)的性能要求也越來越高。針對蒙古語資源網(wǎng)來說,訪問用戶越多、執(zhí)行速度越快、占用資源越少,該網(wǎng)站的性能效率就越好。本文借助LoadRunner測試工具對蒙古語資源網(wǎng)進行負載壓力測試,對網(wǎng)站的性能進行驗證,發(fā)現(xiàn)網(wǎng)站的性能瓶頸并提出了改善網(wǎng)站性能的建議。
1 負載壓力測試相關(guān)概述
系統(tǒng)的負載壓力是指系統(tǒng)在某種指定軟件、硬件以及網(wǎng)絡環(huán)境下所承受的流量,例如并發(fā)用戶數(shù)、持續(xù)運行時間、數(shù)據(jù)量等,其中并發(fā)用戶數(shù)是負載壓力的重要體現(xiàn)[2]。例如當一個應用程序在少量用戶同時使用時,程序可能會正常運行,但是當有大量用戶同時使用時,可能會出現(xiàn)功能失效、性能衰減,甚至系統(tǒng)崩潰的現(xiàn)象。
負載壓力測試是指在一定約束條件下測試系統(tǒng)所承受的并發(fā)用戶量、運行時間、數(shù)據(jù)量,以確定系統(tǒng)所能承受的最大負載壓力。負載壓力測試有助于確認被測系統(tǒng)是否能夠支持性能需求以及預期的負載增長等[2]。負載壓力測試是性能測試的重要組成部分,它包括并發(fā)性能測試、疲勞強度測試、大數(shù)據(jù)量測試等[2-3]。并發(fā)性能測試的過程是一個負載測試和壓力測試的過程,即逐漸增加并發(fā)用戶數(shù)負載,直到系統(tǒng)的瓶頸或者不能接收的性能點,通過綜合分析交易執(zhí)行指標、資源監(jiān)控指標等來確定系統(tǒng)并發(fā)性能的過程。疲勞強度測試是采用系統(tǒng)穩(wěn)定運行情況下能夠支持的最大并發(fā)用戶數(shù),持續(xù)執(zhí)行一段時間業(yè)務,保證達到系統(tǒng)疲勞強度需求的業(yè)務量,通過綜合分析交易執(zhí)行指標和資源監(jiān)控指標,來確定系統(tǒng)處理最大工作量強度性能的過程。大數(shù)據(jù)量測試包括獨立的數(shù)據(jù)量測試和綜合數(shù)據(jù)量測試兩類。獨立的數(shù)據(jù)量測試是指針對某些系統(tǒng)存儲、傳輸、統(tǒng)計、查詢等業(yè)務進行的大數(shù)據(jù)量測試。綜合數(shù)據(jù)量測試是指與壓力性能測試、負載性能測試、疲勞性能測試相結(jié)合的綜合測試。
2 常見的測試指標
常見的測試指標有并發(fā)用戶數(shù)、交易響應時間、吞吐量和交易通過率等[2-3]。
并發(fā)用戶數(shù)是指同時進行請求的客戶數(shù)量,并發(fā)用戶數(shù)用于仿真用戶的真實負載情況。
交易響應時間是指從客戶端發(fā)起一個請求開始,到客戶端接收到從服務器端返回的響應結(jié)束,這個過程所耗費的時間。
吞吐量是指單位時間內(nèi)處理的客戶端請求數(shù)量。通常情況下,吞吐量用請求數(shù)/秒或者頁面數(shù)/秒來衡量。
交易通過率是指每秒鐘能夠成功執(zhí)行的交易數(shù),描述系統(tǒng)能夠提供的“產(chǎn)量”,用戶可以以此來評估系統(tǒng)的性能。
3 負載壓力測試實施步驟
基于LoadRunner的負載壓力測試實施步驟可概括為以下六個階段[4-6]。
⑴ 計劃測試階段主要進行測試需求的收集、典型場景的確定。
⑵ 測試設(shè)計階段主要是進行性能測試用例設(shè)計。
⑶ 創(chuàng)建VU腳本階段主要是根據(jù)設(shè)計的用例創(chuàng)建腳本。
⑷ 創(chuàng)建測試場景階段主要進行測試場景的設(shè)計和設(shè)置,包括監(jiān)控指標的設(shè)定等。
⑸ 運行測試場景階段對已經(jīng)創(chuàng)建的測試場景進行執(zhí)行,收集相應數(shù)據(jù)。
⑹ 分析結(jié)果階段主要進行結(jié)果分析和報告生成。
4 測試案例分析
4.1 確定測試需求
蒙古語資源網(wǎng)是蒙古語言文字數(shù)字資源共享工程的門戶網(wǎng)站,是以圖書、圖片、視頻、音頻、文檔等多種形式展示蒙古語言文字數(shù)字資源的網(wǎng)站,資源總量達46TB以上,具有瀏覽、播放、搜索等功能。根據(jù)網(wǎng)站的特點,需要驗證網(wǎng)站的登錄、圖書資源的加載和視頻資源的加載方面是否滿足系統(tǒng)性能需求。
4.2 測試環(huán)境搭建
操作系統(tǒng)為Windows10家庭中文版,CPU為Intel Core? i5-8400,內(nèi)存8GB,硬盤1.2TB,瀏覽器為Google Chrome(64位),負載測試工具為HP LoadRunner 12.6。
4.3 設(shè)計測試用例
根據(jù)性能測試需求,本案例設(shè)計了三個測試用例:系統(tǒng)登錄、圖書預覽和視頻觀看,其用例標識、用例名稱和用例描述如表1所示。
4.4 腳本錄制和開發(fā)
測試腳本是指Vuser腳本,即虛擬用戶回放所使用的腳本。腳本的產(chǎn)生可以采用錄制、編寫或錄制加編寫混合模式,初始生成的腳本經(jīng)過增強編輯之后,必需再經(jīng)過調(diào)試才可用。啟動LoadRunner虛擬用戶發(fā)生器(Virtual User Generator,簡稱VuGen)選擇相應的協(xié)議進行腳本錄制。為了使腳本滿足測試需求,更加真實的接近用戶的真實操作,需要對錄制完的腳本進行二次開發(fā)。
為了衡量服務器對某個動作處理的響應時間,添加事務技術(shù),事務開始函數(shù)Lr_start_transaction和事務結(jié)束函數(shù)Lr_end_transaction。事務的運行時間在結(jié)果里反應出來。
為了衡量加重負載的情況下服務器的性能情況,需要使用集合點技術(shù)。集合點函數(shù)Lr_rendezvous(“集合點名”)。
為了更加真實的模擬實際環(huán)境,需要在腳本中使用參數(shù)化技術(shù),用參數(shù)取代常量值,把登錄的用戶名和密碼參數(shù)化,并建立用戶名和密碼的數(shù)據(jù)文件。
4.5 場景設(shè)計與運行
將VuGen組件中編輯調(diào)試好的腳本加載到controller(控制器)組件中設(shè)計測試場景。根據(jù)測試需求選擇手動測試場景。在controller組件中設(shè)置并發(fā)用戶數(shù)和運行模式如圖1所示,啟動測試場景,開始運行場景,在監(jiān)視器里實時監(jiān)視測試場景的運行情況。
4.6 測試結(jié)果分析
通過Analysis(分析器)組件分析測試結(jié)果,得出測試結(jié)果如表2所示,系統(tǒng)登錄事務在50個用戶并發(fā)情況下,平均響應時間為2.025秒,事務通過率為100%;圖書預覽事務在50個用戶并發(fā)情況下,平均響應時間為5.623秒,事務通過率為98%;視頻觀看事務在50個用戶并發(fā)情況下,平均響應時間為2.952秒,事務通過率為100%。根據(jù)網(wǎng)站的性能需求,系統(tǒng)登錄事務和視頻觀看事務的平均響應時間均小于5秒,滿足系統(tǒng)的性能需求。而圖書預覽事務的平均響應時間大于5秒,不滿足系統(tǒng)性能需求。
在表2中,當并發(fā)用戶數(shù)為50時,系統(tǒng)登錄和視頻觀看事務的CPU平均使用率均小于35%,滿足系統(tǒng)性能需求,而圖書預覽事務的CPU平均使用率為56.36%,不滿足系統(tǒng)性能需求。由于蒙古語資源網(wǎng)中的圖書資源是以PDF格式掃描上傳的,內(nèi)容多,資源量大,需要加載后才能看到內(nèi)容,例如本案例中所預覽的《中華民族大家庭》一書而言,內(nèi)容共106頁,所以導致圖書預覽事務的響應時間過長、CPU的占用率過高。因此建議對圖書資源預覽模塊的相關(guān)代碼進行優(yōu)化,重構(gòu)代碼,提高代碼的執(zhí)行效率;同時增加相應的硬件,及時釋放系統(tǒng)資源,從而提高蒙古語資源網(wǎng)圖書預覽的性能指標。
5 結(jié)論
本文借助LoadRunner測試工具對蒙古語資源網(wǎng)進行了負載壓力測試。根據(jù)用戶需求設(shè)計了完整的測試方案;用LoadRunner測試工具錄制測試腳本,選擇合適的測試場景模擬多用戶并發(fā)操作;通過分析測試結(jié)果,找出網(wǎng)站性能瓶頸,并提出了改善網(wǎng)站性能的建議。
參考文獻(References):
[1] 張旸旸.軟件產(chǎn)品質(zhì)量要求和測試細則-GB/T 25000.51-
2016標準實施指南[M].北京:電子工業(yè)出版社,2019
[2] 柳純錄.軟件評測師教程[M].北京:清華大學出版社,2005
[3] 朱少明.軟件測試方法和技術(shù)[M].北京:清華大學出版社,
2005
[4] 張艷華.基于LoadRunner的網(wǎng)絡考試系統(tǒng)性能測試實踐[J].
電腦知識與技術(shù),2019,15(21):106-108
[5] 李東昱,苗放.Load Runner在Web應用程序性能測試中的
應用[J].軟件導刊,2007(19):49-51
[6] 郭旭敏,王小廳.Load Runner在軟件性能測試中的應用與
研究[J].太原學院學報,2018,36(3):32-35
收稿日期:2021-10-28
*基金項目:本文受2020年度內(nèi)蒙古自治區(qū)人才開發(fā)基金項目資助
作者簡介:敖登巴拉(1985-),女,內(nèi)蒙古巴彥淖爾市人,高級工程師,碩士研究生,主要研究方向:自然語言處理、軟件測試。