張艷華
摘要:本文使用LoadRunner 對(duì)開(kāi)發(fā)的銀行系統(tǒng)進(jìn)行相應(yīng)的性能測(cè)試。從性能需求分析出發(fā),設(shè)計(jì)相應(yīng)的測(cè)試用例,錄制測(cè)試腳本并對(duì)腳本進(jìn)行相應(yīng)的二次開(kāi)發(fā),實(shí)現(xiàn)模擬真實(shí)多用戶并發(fā)操作,設(shè)計(jì)場(chǎng)景并對(duì)場(chǎng)景進(jìn)行合理配置,最后對(duì)測(cè)試運(yùn)行結(jié)果進(jìn)行整理并分析,得出系統(tǒng)性能指標(biāo)的滿足情況以及系統(tǒng)的瓶頸。
關(guān)鍵詞:LoadRunner;腳本;性能測(cè)試
中圖分類號(hào):TP311 ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)13-0113-03
Abstract:This paper uses LoadRunner to test the performance of the Banking System. Starting from the analysis of performance requirements, we design corresponding test cases, record test scripts and redevelop scripts to simulate real multi-user concurrent operations, design scenarios and configure scenarios rationally. Finally, we collate and analyze the test results, and get the system performance indicators and system bottlenecks.
Key words:LoadRunner;scripts;performance
1 引言
為確保軟件的質(zhì)量,需對(duì)開(kāi)發(fā)的軟件進(jìn)行相應(yīng)的測(cè)試。從不同方面測(cè)試可以有多中分類。軟件性能是與軟件功能相對(duì)應(yīng)的一種非常重要的非功能特性,表明了軟件系統(tǒng)對(duì)時(shí)間及時(shí)性及資源經(jīng)濟(jì)型的要求[1]。對(duì)于一個(gè)具體的軟件系統(tǒng)來(lái)說(shuō),執(zhí)行速度越快、占用資源越少,則軟件性能相對(duì)越好。隨著Web應(yīng)用技術(shù)的發(fā)展,用戶對(duì)Web服務(wù)應(yīng)用的質(zhì)量要求更高[2]。
現(xiàn)代的基于Web的軟件,網(wǎng)站數(shù)據(jù)量大,業(yè)務(wù)量也大,用途更廣泛等。Web 服務(wù)器可能在同一時(shí)間內(nèi)會(huì)接受大量來(lái)自不同地域的數(shù)據(jù)請(qǐng)求,一旦Web 服務(wù)器崩潰,會(huì)造成巨大的損失,這就對(duì)網(wǎng)站的穩(wěn)定性提出了要求[3]。本文針對(duì)Web網(wǎng)站的性能測(cè)試進(jìn)行研究,以開(kāi)發(fā)的銀行系統(tǒng)為例,用LoadRunner 作為測(cè)試工具,對(duì)軟件進(jìn)行性能壓力測(cè)試。
2 常用性能指標(biāo)
進(jìn)行軟件測(cè)試常用的性能指標(biāo)有響應(yīng)時(shí)間、并發(fā)用戶數(shù)、吞吐量等。
響應(yīng)時(shí)間:用戶感受到的軟件系統(tǒng)為其服務(wù)所消耗的時(shí)間。
并發(fā)用戶數(shù):是系統(tǒng)能夠同時(shí)處理的用戶請(qǐng)求的數(shù)目。
吞吐量:?jiǎn)挝粫r(shí)間內(nèi)系統(tǒng)處理的客戶請(qǐng)求數(shù)量,體現(xiàn)系統(tǒng)的整體處理能力。常用的指標(biāo)有RPS、TPS、PPS
服務(wù)器性能計(jì)數(shù)器:指服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo),在性能測(cè)試中發(fā)揮著監(jiān)控和分析的作用。
3 性能測(cè)試流程
基于LoadRunner的性能測(cè)試的一般流程為:制定測(cè)試計(jì)劃->設(shè)計(jì)性能測(cè)試方案->錄制VU腳本->創(chuàng)建測(cè)試場(chǎng)景->執(zhí)行性能測(cè)試->進(jìn)行結(jié)果分析。
4 具體實(shí)現(xiàn)
4.1明確測(cè)試范圍
根據(jù)銀行的業(yè)務(wù)特點(diǎn),分析得出測(cè)試的范圍為:登錄、存款、轉(zhuǎn)賬、取款、查詢余額、退出。
4.2明確性能測(cè)試需求
由于系統(tǒng)是小型系統(tǒng),需要系統(tǒng)能夠支持20個(gè)用戶并發(fā)操作;登錄最大響應(yīng)時(shí)間1S,平均響應(yīng)時(shí)間0.5s;查詢最大響應(yīng)時(shí)間1.5S,平均響應(yīng)時(shí)間0.5s;存款最大響應(yīng)時(shí)間1S,平均響應(yīng)時(shí)間0.5s;取錢最大響應(yīng)時(shí)間1.5S,平均響應(yīng)時(shí)間1s;系統(tǒng)CPU利用率低于70%,內(nèi)存利用率低于80%。
4.3書(shū)寫(xiě)測(cè)試用例
根據(jù)性能需求給出測(cè)試用例,現(xiàn)給出登錄及查詢測(cè)試用例。
4.4 搭建測(cè)試環(huán)境
銀行系統(tǒng)的測(cè)試環(huán)境為:操作系統(tǒng)為Windows7,數(shù)據(jù)庫(kù)為MySQI,服務(wù)器為T(mén)omcat7.0。
4.5 腳本錄制與開(kāi)發(fā)
首先啟動(dòng)LoadRunner,用VG進(jìn)行登錄測(cè)試腳本的錄制,選用http協(xié)議進(jìn)行錄制。錄制完腳本后可以對(duì)自動(dòng)錄制的腳本進(jìn)行二次開(kāi)發(fā),此時(shí)可以根據(jù)要求添加相應(yīng)的腳本函數(shù)。
① 添加事務(wù):軟件系統(tǒng)的性能是依靠事務(wù)來(lái)度量的,在執(zhí)行測(cè)試時(shí)LoadRunner會(huì)采集完成其定義的每個(gè)事務(wù)所花費(fèi)的時(shí)間段,并在測(cè)試后在Analysis中進(jìn)行統(tǒng)計(jì)分析。用Lr_start_transaction()標(biāo)記事務(wù)的開(kāi)始,用Lr_end_transaction()標(biāo)記事務(wù)的結(jié)束。
② 添加檢查點(diǎn):
在執(zhí)行性能測(cè)試的過(guò)程中,執(zhí)行成功率是一項(xiàng)重要的指標(biāo),如果多用戶并發(fā)過(guò)程中有很多請(qǐng)求失敗,說(shuō)明系統(tǒng)對(duì)業(yè)務(wù)的支撐能力出現(xiàn)了問(wèn)題。因此系統(tǒng)在執(zhí)行過(guò)程中需要明確判斷某個(gè)操作是否通過(guò),可以利用Web_reg_find()在腳本中相應(yīng)的位置插入檢查點(diǎn),并設(shè)置檢查點(diǎn)內(nèi)容。
③ 參數(shù)化:為了更加真實(shí)的模擬實(shí)際環(huán)境,需要在腳本中用參數(shù)取代常量值,將登錄用戶名及密碼參數(shù)化。
④ 思考時(shí)間:為了模擬真實(shí)的情況,如有必要可以添加添加思考時(shí)間。
4.6 場(chǎng)景設(shè)計(jì)及運(yùn)行
虛擬用戶測(cè)試腳本調(diào)試完成后,將其添加至Controller中創(chuàng)建場(chǎng)景,在Controller中設(shè)置好虛擬用戶的數(shù)量和行為方式后,即可運(yùn)行測(cè)試場(chǎng)景。對(duì)系統(tǒng)產(chǎn)生壓力。在Controller中有兩種測(cè)試場(chǎng)景設(shè)置,分別是手動(dòng)和面向目標(biāo)兩種場(chǎng)景。根據(jù)需求選用手動(dòng)設(shè)置測(cè)試場(chǎng)景。選擇Real-world schedule(真實(shí)場(chǎng)景模式)加壓方式:每15秒增加3個(gè)虛擬用戶,增加至10個(gè),持續(xù)運(yùn)行2分鐘,然后每30秒遞減5個(gè),減少至5個(gè),持續(xù)30秒,每20秒增加5個(gè),增加至10個(gè),持續(xù)20秒,每20秒減少5個(gè),減少至0個(gè);添加需要監(jiān)控的windows指標(biāo)。場(chǎng)景設(shè)計(jì)完成后執(zhí)行場(chǎng)景測(cè)試監(jiān)控相應(yīng)的指標(biāo)。
4.7 Analysis分析的結(jié)果
系統(tǒng)性能測(cè)試的目的是查找系統(tǒng)的性能問(wèn)題,找到系統(tǒng)的瓶頸并分析原因。
根據(jù)執(zhí)行的測(cè)試,分析測(cè)試結(jié)果。
從圖2中得出并發(fā)用戶數(shù)為10時(shí)滿足用戶的性能需求。當(dāng)并發(fā)用戶數(shù)為20時(shí)由圖3表可以看出最大響應(yīng)時(shí)間為3.748秒,不符合最大響應(yīng)時(shí)間不超過(guò)1秒的要求。
4.8 系統(tǒng)瓶頸
從圖4中分析到存錢的響應(yīng)時(shí)間很長(zhǎng),遠(yuǎn)遠(yuǎn)超過(guò)系統(tǒng)性能需求,通過(guò)操作系統(tǒng)分配給進(jìn)程的物理內(nèi)存總量減少,導(dǎo)致時(shí)間消耗過(guò)長(zhǎng)。
5 結(jié)束語(yǔ)
通過(guò)對(duì)基于Web的銀行系統(tǒng)進(jìn)行性能分析,然后設(shè)計(jì)出一套完整的測(cè)試方案。使用LoadRunner測(cè)試工具,錄制測(cè)試腳本對(duì)測(cè)試腳本進(jìn)行二次開(kāi)發(fā),更加真實(shí)地模擬多個(gè)用戶操作,設(shè)計(jì)出較為真實(shí)的用戶場(chǎng)景,并且進(jìn)行相應(yīng)的測(cè)試工作,收集并整理測(cè)試數(shù)據(jù),對(duì)相關(guān)數(shù)據(jù)進(jìn)行合理的組合與分析,最終得出系統(tǒng)性能測(cè)試的需求滿足情況及系統(tǒng)瓶頸。
參考文獻(xiàn):
[1] 修佳鵬. 軟件性能測(cè)試及工具應(yīng)用[M].北京:清華大學(xué)出版社,2014:1
[2] Bozic J, Garn B, Kapsalis I, et al. Attack Pattern-Based Com?binatorial Testing with Constraints for Web Security Testing[C].IEEE International Conference on Software Quality, Reliabilityand Security. IEEE, 2015:207-212.
[3]Novak S, Stefanovi? D, Popovi?M, et al. Web based systemfor automatic testing[C]. IEEE International Workshop on Consumer Electronics. IEEE, 2017:30-31.
【通聯(lián)編輯:王力】