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