郭旭敏,王小廳
(1.山西青年職業(yè)學(xué)院,山西 太原 030032;2. 太原清眾鑫科技有限公司,山西 太原 030006)
隨著信息化的建設(shè),軟件在各行各業(yè)愈顯重要,軟件的規(guī)模也越來越大,架構(gòu)越來越復(fù)雜,導(dǎo)致軟件的質(zhì)量得不到保障,給軟件開發(fā)單位和用戶帶來很大的損失。軟件測(cè)試是保證軟件質(zhì)量的重要手段,軟件測(cè)試包括功能測(cè)試和性能測(cè)試,功能測(cè)試主要依據(jù)設(shè)計(jì)方案測(cè)試軟件能否滿足設(shè)計(jì)需求,而性能測(cè)試主要指壓力測(cè)試,目的是發(fā)現(xiàn)系統(tǒng)存在的性能瓶頸從而進(jìn)行優(yōu)化[1]。LoadRunner是軟件性能測(cè)試領(lǐng)域中常使用的一款軟件,它可以模擬多個(gè)用戶來對(duì)軟件進(jìn)行壓力測(cè)試。
性能測(cè)試是在軟件開發(fā)已經(jīng)完成且通過了單元測(cè)試和集成測(cè)試之后,通過選取一些常用的操作和可能會(huì)對(duì)系統(tǒng)產(chǎn)生重大壓力的操作來作為測(cè)試用例,通過性能測(cè)試來判斷系統(tǒng)是否滿足用戶的非功能性需求,從而保證軟件的質(zhì)量[2]。
性能測(cè)試通常由第三方專業(yè)的軟件測(cè)試機(jī)構(gòu)來執(zhí)行,并出具軟件測(cè)試報(bào)告。因此,在設(shè)計(jì)性能測(cè)試方案之前需要仔細(xì)查看開發(fā)方提供的軟件需求規(guī)格說明書來確定測(cè)試方案,測(cè)試方案中通常包括測(cè)試的范圍和對(duì)象、測(cè)試的方法和步驟、測(cè)試環(huán)境、工作量和進(jìn)度、風(fēng)險(xiǎn)分析和輸出結(jié)果等。
系統(tǒng)實(shí)施性能測(cè)試的目的:第一,查看系統(tǒng)在一定負(fù)載的情況下能否達(dá)到系統(tǒng)設(shè)計(jì)的要求;第二,通過在一定負(fù)載下觀測(cè)系統(tǒng)運(yùn)行指標(biāo)分析系統(tǒng)可能出現(xiàn)的性能瓶頸,從而對(duì)系統(tǒng)進(jìn)行優(yōu)化。本次性能測(cè)試主要關(guān)注的指標(biāo)有[3]:
響應(yīng)時(shí)間:指在給定并發(fā)用戶數(shù)下,從客戶端發(fā)出請(qǐng)求到得到服務(wù)器的響應(yīng)的整個(gè)過程的平均時(shí)間。并發(fā)用戶數(shù)是指同一時(shí)刻與服務(wù)器同時(shí)進(jìn)行交互的用戶的數(shù)量,在測(cè)評(píng)過程中通常使用模擬用戶。
每秒事務(wù)處理量(TPS):用來描述系統(tǒng)處理性能的指標(biāo),指每秒中待測(cè)系統(tǒng)能夠處理的事務(wù)的數(shù)量。
吞吐率(ThroughPut):在指定并發(fā)用戶數(shù)下,單位時(shí)間內(nèi)網(wǎng)絡(luò)中所傳輸?shù)臄?shù)據(jù)量或者單位時(shí)間內(nèi)系統(tǒng)能夠處理的客戶端請(qǐng)求的數(shù)量。吞吐率是衡量系統(tǒng)網(wǎng)絡(luò)性能的重要指標(biāo)。
資源消耗情況:在給定的并發(fā)用戶數(shù)下,服務(wù)器的CPU、內(nèi)存和硬盤等資源的消耗情況。
1.2.1測(cè)試工具
軟件性能測(cè)試的工具主要有LoadRunner、JMeter、WAS、SilkPerformer、QALoad和WebLoad等。LoadRunner是由惠普公司開發(fā)的,雖然操作較復(fù)雜和自動(dòng)性較其他工具稍差,但其能夠真實(shí)地模擬系統(tǒng)的生產(chǎn)環(huán)境和用戶的操作場(chǎng)景,因此其廣泛地應(yīng)用于工業(yè)上。本文性能測(cè)試使用的工具是LoadRunner。
LoadRunner是一款能夠預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具。其原理是利用內(nèi)部的VU Generator所產(chǎn)生的上千萬用戶來模擬實(shí)施并發(fā)負(fù)載和實(shí)時(shí)系統(tǒng)性能監(jiān)測(cè)的方式來確認(rèn)和查找系統(tǒng)中所存在的問題,LoadRunner能夠?qū)φ麄€(gè)系統(tǒng)架構(gòu)進(jìn)行測(cè)試[4]。LoadRunner支持主流的開發(fā)平臺(tái)(如.NET和Java)和大量的協(xié)議標(biāo)準(zhǔn)(如Web Service、XML、SOAP、WAP、oracle NCA、HTTP、HTML、Streaming),因此LoadRunner被廣泛地應(yīng)用于工業(yè)中進(jìn)行軟件負(fù)載測(cè)試。通過LoadRunner工具,可以最大限度地縮短系統(tǒng)性能測(cè)試時(shí)間,優(yōu)化系統(tǒng)的性能,加速應(yīng)用系統(tǒng)的發(fā)布周期。
1.2.2測(cè)試流程
LoadRunner對(duì)軟件進(jìn)行性能測(cè)試時(shí)通常由計(jì)劃、創(chuàng)建腳本、定義場(chǎng)景、執(zhí)行場(chǎng)景和分析結(jié)果五個(gè)步驟組成[5]。
計(jì)劃:根據(jù)系統(tǒng)設(shè)計(jì)定義性能測(cè)試所需的并發(fā)用戶數(shù)量、業(yè)務(wù)流程和每個(gè)操作的響應(yīng)時(shí)間等。
創(chuàng)建腳本:把用戶的操作捕捉到腳本。
定義場(chǎng)景:利用LoadRunner Controller設(shè)置性能測(cè)試的環(huán)境。
執(zhí)行場(chǎng)景:利用LoadRunner Controller驅(qū)動(dòng)、監(jiān)控和管理測(cè)試。
分析結(jié)果:利用LoadRunner Analysis創(chuàng)建結(jié)果圖和報(bào)告,并評(píng)估系統(tǒng)的性能。
本次測(cè)試依據(jù)GB/T 25000.51-2016《系統(tǒng)與軟件工程系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE)第51部分就緒可用軟件產(chǎn)品(RUSP)的質(zhì)量要求和測(cè)試細(xì)則》,從安全、可靠、穩(wěn)定的角度出發(fā)驗(yàn)證被測(cè)系統(tǒng)的性能[6]。
本次待測(cè)軟件是客戶信息管理系統(tǒng)軟件,本樣品軟件是一個(gè)簡(jiǎn)化的“客戶信息管理系統(tǒng)”,僅包含一個(gè)“客戶管理”模塊,涉及“系統(tǒng)登錄”、“創(chuàng)建客戶”、“信息刪除”和“信息查詢”四個(gè)功能點(diǎn)。
待測(cè)系統(tǒng)部署在阿里云上,測(cè)試環(huán)境包括兩臺(tái)服務(wù)器(一臺(tái)應(yīng)用服務(wù)器和一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器)和一臺(tái)測(cè)試機(jī)。
樣品軟件是采用 JAVA 開發(fā)的 B/S 系統(tǒng),測(cè)試環(huán)境如下:
2.2.1應(yīng)用服務(wù)器
硬件配置:Intel Xeon Gold 6149 3.10G/4G/40G
操作系統(tǒng):Windows Server 2012 R2 Datacenter
此外,法國(guó)鼓勵(lì)學(xué)校利用當(dāng)?shù)刭Y源開展活動(dòng)。學(xué)??梢酝ㄟ^與文化機(jī)構(gòu)結(jié)成“姊妹合作單位”,通過簽署協(xié)議的方式設(shè)立地方教育計(jì)劃。學(xué)生的部分藝術(shù)與文化教育活動(dòng)可安排在相關(guān)文化機(jī)構(gòu)中開展。
瀏覽器:IE 11.0
中間件:Tomcat 9.0
2.2.2數(shù)據(jù)庫(kù)服務(wù)器
硬件配置:Intel Xeon Gold 6149 3.10G/4G/40G
操作系統(tǒng):Windows Server 2012 R2 Datacenter
瀏覽器:IE 11.0
數(shù)據(jù)庫(kù):MySQL 5.5
2.2.3測(cè)試機(jī)
操作系統(tǒng): Windows Server 2008 R2 Enterprise
瀏覽器: IE 9.0
樣品軟件應(yīng)用于局域網(wǎng)環(huán)境,并要滿足以下性能效率要求:
1)主要功能的單點(diǎn)操作在 2 秒鐘內(nèi)完成;
2)系統(tǒng)支持 50 用戶并發(fā),響應(yīng)時(shí)間在 5 秒以內(nèi);
3)在 20%用戶處于系統(tǒng)登錄, 20%用戶處于創(chuàng)建客戶, 20%用戶處于信息刪除,40%用戶處于信息查詢狀態(tài)下,系統(tǒng) 50 用戶在線的吞吐率(TPS)應(yīng)達(dá)到30 事務(wù)/秒。
待測(cè)系統(tǒng)需要從登錄、創(chuàng)建用戶、查詢用戶和刪除用戶四個(gè)方面對(duì)系統(tǒng)進(jìn)行測(cè)試。限于篇幅,以下單點(diǎn)操作和并發(fā)操作僅以創(chuàng)建用戶為例。
2.4.1單點(diǎn)操作
腳本設(shè)計(jì):在打開網(wǎng)站首頁(yè)后進(jìn)行登錄,登錄成功后進(jìn)行創(chuàng)建操作,錄制測(cè)試腳本單點(diǎn)操作-創(chuàng)建;
場(chǎng)景設(shè)計(jì):運(yùn)行測(cè)試腳本,運(yùn)行單點(diǎn)操作創(chuàng)建;設(shè)計(jì)迭代次數(shù)一次;忽略思考時(shí)間;加載用戶數(shù)為1;運(yùn)行時(shí)間持續(xù)20分鐘;監(jiān)控單點(diǎn)操作-創(chuàng)建事務(wù)平均響應(yīng)時(shí)間。
結(jié)果記錄如圖1所示。
圖1 創(chuàng)建用戶單點(diǎn)操作
2.4.2并發(fā)操作
腳本設(shè)計(jì):在打開網(wǎng)站首頁(yè)后進(jìn)行登錄,登陸成功后進(jìn)行創(chuàng)建操作,錄制測(cè)試腳本并發(fā)創(chuàng)建。
場(chǎng)景設(shè)計(jì):運(yùn)行測(cè)試腳本,運(yùn)行并發(fā)創(chuàng)建;設(shè)計(jì)迭代次數(shù)一次;忽略思考時(shí)間;加載用戶數(shù)為50;運(yùn)行時(shí)間持續(xù)20分鐘監(jiān)控并發(fā)創(chuàng)建事務(wù)平均響應(yīng)時(shí)間。
并發(fā)操作結(jié)果記錄如圖2所示。
圖2 創(chuàng)建用戶并發(fā)操作
2.4.3在線用戶吞吐率
腳本設(shè)計(jì):在打開網(wǎng)站首頁(yè)后分別進(jìn)行登錄、創(chuàng)建、查詢和刪除操作,分別錄制測(cè)試腳本登錄、創(chuàng)建、查詢、刪除,在測(cè)試點(diǎn)前后插入事務(wù),分別是登錄、創(chuàng)建、查詢、刪除。
場(chǎng)景設(shè)計(jì):同時(shí)運(yùn)行測(cè)試腳本登錄、創(chuàng)建、查詢、刪除;設(shè)計(jì)迭代次數(shù)一次;忽略思考時(shí)間;加載用戶數(shù)為50,用戶比例為20%、20%、40%、20%;運(yùn)行時(shí)間持續(xù)20分鐘;監(jiān)控總事務(wù)數(shù)。
在線用戶吞吐率如圖3所示。
圖3 在線用戶吞吐率
此次測(cè)試用戶操作流程簡(jiǎn)單,并未對(duì)服務(wù)器造成高負(fù)載,從各功能點(diǎn)在單點(diǎn)操作測(cè)試結(jié)果可以得出,單用戶在持續(xù)運(yùn)行20分鐘后得到測(cè)試結(jié)果(平均事務(wù)響應(yīng)時(shí)間)均滿足指標(biāo)要求,都小于2s,并且在測(cè)試過程中平均事務(wù)響應(yīng)時(shí)間浮動(dòng)較小,系統(tǒng)運(yùn)行平穩(wěn)。在50用戶并發(fā)持續(xù)運(yùn)行20分鐘后得到測(cè)試結(jié)果(平均事務(wù)響應(yīng)時(shí)間)均滿足指標(biāo)要求,都小于5s。TPS測(cè)試中,測(cè)試的每秒事務(wù)數(shù)達(dá)到30個(gè),符合測(cè)評(píng)需求中對(duì)性能指標(biāo)的要求。