張峰 劉慶峰 賀英杰
摘要:該文對(duì)于軟件的性能測(cè)試具有一定的指導(dǎo)意義。首先介紹了LoadRunner的性能特點(diǎn),然后對(duì)其性能測(cè)試的一般流程進(jìn)行描述,最后通過實(shí)際應(yīng)用闡述了LoadRunner在性能測(cè)試方面的應(yīng)用過程以及如何對(duì)測(cè)試結(jié)果進(jìn)行分析。
關(guān)鍵詞:LoadRunner;性能測(cè)試;負(fù)載測(cè)試
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)07-1567-02
LoadRunner Tool for Applied Research in the Performance Test
ZHANG Feng, LIU Qing-feng, HE Ying-jie
(91413 troops,Qinhuangdao 066001,China)
Abstract: This paper with some guiding significance for the software performance testing. First LoadRunner performance characteristics, then the general process of performance testing are described, explained by the practical application of how LoadRunner performance testing process and test results are analyzed.
Key words: LoadRunner; performance testing; load testing
隨著國(guó)家建設(shè)逐漸在信息化建設(shè)領(lǐng)域的發(fā)展,軟件在國(guó)家信息化建設(shè)中的作用越來越大,在很多領(lǐng)域中也發(fā)揮越來越重要的作用。但是隨著軟件技術(shù)、方法的不斷發(fā)展,雖然目前的軟件功能基本滿足可以使人們快速開發(fā)復(fù)雜性的應(yīng)用的需求,但是隨著軟件應(yīng)用規(guī)模也越來越大,架構(gòu)越來越復(fù)雜,最終導(dǎo)致還會(huì)影響軟件的性能而停止使用,給軟件開發(fā)機(jī)構(gòu)以及客戶都帶來了一定的損失。因此,解決軟件性能的問題對(duì)世界都具有重要的現(xiàn)實(shí)意義。LoadRunner是目前國(guó)內(nèi)性能測(cè)試領(lǐng)域應(yīng)用最廣泛的工具之一,它可以通過模擬成千上萬的用戶,很快地幫助用戶確認(rèn)和查找性能問題。
1性能測(cè)試基礎(chǔ)知識(shí)
系統(tǒng)的性能是一個(gè)很大的概念,覆蓋面非常廣泛,對(duì)一個(gè)軟件系統(tǒng)而言包括執(zhí)行效率、資源占用、穩(wěn)定性、安全性、兼容性、可擴(kuò)展性、可靠性等等,性能測(cè)試是用來保證產(chǎn)品發(fā)布后系統(tǒng)的性能滿足用戶要求。性能測(cè)試在軟件質(zhì)量保證中起重要作用。
在性能測(cè)試的執(zhí)行中,可以根據(jù)具體的性能指標(biāo),分解為多種子測(cè)試,根據(jù)其關(guān)系,可以在不同的時(shí)間和空間內(nèi)執(zhí)行。這些子測(cè)試通常包括以下幾種:
1)壓力測(cè)試。壓力測(cè)試是模擬實(shí)際應(yīng)用的軟硬件環(huán)境及用戶使用過程的系統(tǒng)負(fù)荷,長(zhǎng)時(shí)間或超大負(fù)荷地運(yùn)行測(cè)試軟件,來測(cè)試被測(cè)系統(tǒng)的性能、可靠性、穩(wěn)定性等。
2)負(fù)載測(cè)試。負(fù)載測(cè)試是確定在各種工作負(fù)載下系統(tǒng)測(cè)性能,目標(biāo)是測(cè)試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)組成部分的響應(yīng)輸出項(xiàng),例如通過量、響應(yīng)時(shí)間、CPU負(fù)載、內(nèi)存使用等如何決定系統(tǒng)性能(穩(wěn)定性和響應(yīng))。
3)并發(fā)測(cè)試。并發(fā)性能測(cè)試是指逐漸增加并發(fā)用戶數(shù)負(fù)載,直到系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),通過綜合分析交易指標(biāo)、資源監(jiān)控指標(biāo)等來確定并發(fā)性能的過程。并發(fā)性能測(cè)試是負(fù)載壓力測(cè)試中的重要內(nèi)容。
4)健壯性測(cè)試。健壯性是指在異常情況下,軟件能夠正常運(yùn)行的能力,這里的異常指的是資源過少、用戶數(shù)過多、突發(fā)故障等。
5)容量測(cè)試。容量測(cè)試是檢驗(yàn)軟件的能力最高能達(dá)到什么程度的測(cè)試,一般應(yīng)測(cè)試到在正常情況下軟件所具備的最高能力,如:響應(yīng)時(shí)間或并發(fā)處理個(gè)數(shù)等能力。
2 LoadRunner簡(jiǎn)介和性能測(cè)試流程
2.1 LoadRunner簡(jiǎn)介
LoadRunner主要由Mercury虛擬用戶生成器VuGen(創(chuàng)建腳本)、創(chuàng)建、管理和監(jiān)控負(fù)載測(cè)試的中央控制臺(tái)Mercury LoadRunner Controlle(設(shè)計(jì)和運(yùn)行場(chǎng)景)、壓力生成器LoadGenerator(模擬用戶生成負(fù)載)、結(jié)果分析工具M(jìn)ercury Analysis(分析場(chǎng)景)組成。
2.2性能測(cè)試流程
LoadRunner通常是按照?qǐng)D1的流程來進(jìn)行性能測(cè)試的,即使在項(xiàng)目驗(yàn)收階段啟動(dòng)的性能測(cè)試也不例外。不過,可能會(huì)根據(jù)項(xiàng)目的實(shí)際情況省略一些步驟。
圖1LoadRunner性能測(cè)試流程
各流程的主要內(nèi)容介紹如下:
1)測(cè)試需求分析。主要任務(wù)是確定測(cè)試策略和測(cè)試范圍。測(cè)試策略主要根據(jù)軟件類型以及用戶對(duì)待性能測(cè)試的態(tài)度來確定。測(cè)試范圍則根據(jù)測(cè)試策略和需求分析的結(jié)果來確定。
2)測(cè)試計(jì)劃的制定與評(píng)審。測(cè)試計(jì)劃的內(nèi)容主要包括測(cè)試范圍、測(cè)試環(huán)境、測(cè)試方案簡(jiǎn)介、風(fēng)險(xiǎn)分析等。測(cè)試計(jì)劃要經(jīng)過評(píng)審才可以生效。
3)測(cè)試用例的設(shè)計(jì)與開發(fā)。主要包括測(cè)試用例的設(shè)計(jì)和測(cè)試腳本的開發(fā)。測(cè)試腳本的開發(fā)主要是指開發(fā)和用例相關(guān)的測(cè)試程序。
4)測(cè)試的執(zhí)行與監(jiān)控。主要包括性能測(cè)試的實(shí)施與過程監(jiān)控。測(cè)試實(shí)施主要指通過測(cè)試工具或真實(shí)的用戶來執(zhí)行測(cè)試用例,具體工作主要有創(chuàng)建測(cè)試場(chǎng)景、執(zhí)行測(cè)試場(chǎng)景、監(jiān)視測(cè)試場(chǎng)景等。
5)分析測(cè)試結(jié)果。主要任務(wù)是根據(jù)前面的測(cè)試數(shù)據(jù)來分析測(cè)試結(jié)果,為優(yōu)化和調(diào)整系統(tǒng)提供依據(jù)。通過對(duì)測(cè)試結(jié)果的綜合分析,準(zhǔn)確定位系統(tǒng)的性能問題。
6)編寫性能測(cè)試報(bào)告。根據(jù)分析結(jié)果編寫性能測(cè)試報(bào)告。測(cè)試報(bào)告主要包括測(cè)試過程記錄、測(cè)試結(jié)果分析、系統(tǒng)調(diào)整建議等內(nèi)容。
7)總結(jié)測(cè)試經(jīng)驗(yàn)。通過總結(jié)本次工作的經(jīng)驗(yàn)和教訓(xùn),給以后相類似的工作提供一些指導(dǎo)作用。不斷的總結(jié)和學(xué)習(xí),也能提高團(tuán)隊(duì)每個(gè)人的思想意識(shí)和學(xué)習(xí)能力。
3測(cè)試案例
3.1背景概述
Mercury Tours是一個(gè)簡(jiǎn)單的、小型的機(jī)票預(yù)定網(wǎng)站。如果想在該網(wǎng)站上預(yù)訂機(jī)票,旅客需要先在該網(wǎng)站上注冊(cè)一個(gè)用戶名和設(shè)置相應(yīng)的密碼,并填寫相關(guān)的用戶信息,注冊(cè)成功后,旅客就可以使用注冊(cè)的用戶名和密碼登錄該網(wǎng)站進(jìn)行機(jī)票預(yù)定。
為了測(cè)試多個(gè)用戶同時(shí)訪問Web服務(wù)器時(shí)是否存在性能下降等性能問題,找出Web服務(wù)器能夠同時(shí)支持的最大用戶數(shù),需要對(duì)Web服務(wù)器進(jìn)行并發(fā)用戶性能測(cè)試。在具體的性能測(cè)試工作中,并發(fā)用戶往往是借助工具來進(jìn)行模擬的。鑒于LoadRunner在性能測(cè)試方面的強(qiáng)大功能,在本測(cè)試案例中使用LoadRunner來模擬大量的用戶,然后讓這些虛擬用戶同時(shí)訪問網(wǎng)站,從而幫助我們確認(rèn)和查找性能問題。測(cè)試的體系架構(gòu)如圖2所示。
圖2測(cè)試體系架構(gòu)圖
3.2測(cè)試分析和規(guī)劃
注冊(cè)和登錄是系統(tǒng)的基本功能,尤其是登錄,多數(shù)用戶都會(huì)使用到,因此登錄功能是重點(diǎn)設(shè)計(jì)的測(cè)試場(chǎng)景,以保證用戶能夠正常登錄訪問系統(tǒng)。注冊(cè)功能的并發(fā)用戶數(shù)量較少,且僅僅是提交數(shù)據(jù)的過程,因此可以不進(jìn)行測(cè)試。
單用戶登錄的模擬場(chǎng)景主要如下:1)打開首頁(yè),進(jìn)入登錄界面,提交登錄信息;2)進(jìn)入系統(tǒng)訂票界面,進(jìn)行訂票操作;3)注銷登錄,退出系統(tǒng)。
為了達(dá)到測(cè)試目的,需要使用LoadRunner設(shè)計(jì)一定數(shù)量的虛擬用戶并發(fā)登錄系統(tǒng),查看登錄結(jié)果。
3.3測(cè)試腳本的錄制和開發(fā)
運(yùn)行LoadRunner,在錄制面板上輸入要錄制的目標(biāo)站點(diǎn)URL,打開網(wǎng)頁(yè)后進(jìn)行登錄操作并進(jìn)行錄制。將登錄操作定義為一個(gè)事務(wù),在錄制過程中添加事務(wù)和集合點(diǎn)。插入事務(wù)是為了更好地分析并發(fā)用戶的操作響應(yīng)時(shí)間。
如果直接用錄制后的腳本創(chuàng)建測(cè)試場(chǎng)景,則所有的虛擬用戶在場(chǎng)景運(yùn)行時(shí)執(zhí)行的操作將會(huì)與錄制的操作完全一樣,這不符合實(shí)際情況。在實(shí)際情況中,并發(fā)登錄的用戶是不相同的,這個(gè)時(shí)候可以使用LoadRunner的參數(shù)化功能。參數(shù)化實(shí)際就是使用參數(shù)來替換一些常量,當(dāng)腳本運(yùn)行時(shí),虛擬用戶使用指定數(shù)據(jù)源中的值來替換參數(shù)。在本例中,將用戶名和密碼參數(shù)化為“username”和“password”兩個(gè)參數(shù),然后為這兩個(gè)參數(shù)指定一個(gè)數(shù)據(jù)源。
3.4場(chǎng)景的創(chuàng)建和執(zhí)行
啟動(dòng)Controller,場(chǎng)景類型選擇手動(dòng)測(cè)試場(chǎng)景,設(shè)置一定數(shù)量的虛擬用戶,配置測(cè)試腳本和負(fù)載生成器,使用計(jì)劃生成器同時(shí)加載所有的虛擬用戶并使所有的虛擬用戶運(yùn)行到結(jié)束。場(chǎng)景配置完成后就可以啟動(dòng)測(cè)試場(chǎng)景,在場(chǎng)景運(yùn)行時(shí)可以查看用戶狀態(tài)和運(yùn)行數(shù)據(jù)圖。
3.5結(jié)果分析
運(yùn)行后的虛擬用戶運(yùn)行情況和事物響應(yīng)時(shí)間如圖3、圖4、圖5所示。在虛擬用戶運(yùn)行圖中,紫色線條代表正在運(yùn)行的虛擬用戶數(shù),黃色線條代表已經(jīng)結(jié)束的虛擬用戶數(shù),紅色線條代表出錯(cuò)的虛擬用戶數(shù);在事物響應(yīng)時(shí)間圖中,棕色線條代表action事物的響應(yīng)時(shí)間,紫色線條代表登錄事務(wù)的響應(yīng)時(shí)間。
從圖3中可以看出,當(dāng)虛擬用戶數(shù)為20時(shí),事務(wù)的響應(yīng)時(shí)間比較小,且基本成一條直線,說明Web服務(wù)器的性能比較穩(wěn)定;當(dāng)虛擬用戶數(shù)增加到30時(shí),如圖4所示,事務(wù)響應(yīng)時(shí)間有所增加,隨著測(cè)試時(shí)間的變化,事務(wù)響應(yīng)時(shí)間逐漸變大,說明系統(tǒng)處理事務(wù)的速度逐漸變慢,服務(wù)器性能呈現(xiàn)下降的趨勢(shì);當(dāng)虛擬用戶數(shù)增加到40時(shí),如圖5所示,事務(wù)響應(yīng)時(shí)間增加明顯,隨著測(cè)試時(shí)間的變化,事務(wù)響應(yīng)時(shí)間成一條斜線,說明服務(wù)器性能有很大下降,同時(shí)有7個(gè)虛擬用戶運(yùn)行出錯(cuò),進(jìn)一步查看出錯(cuò)原因發(fā)現(xiàn)是下載資源時(shí)超時(shí),說明Web服務(wù)器的最大并發(fā)用戶數(shù)不超過40。
圖3虛擬用戶為20的虛擬用戶運(yùn)行圖和事物響應(yīng)時(shí)間圖
圖4虛擬用戶為30的虛擬用戶運(yùn)行圖和事物響應(yīng)時(shí)間圖
圖5虛擬用戶為40的虛擬用戶運(yùn)行圖和事物響應(yīng)時(shí)間
4結(jié)論
性能測(cè)試對(duì)于軟件的重要性不言而喻,通過性能測(cè)試,可以發(fā)現(xiàn)系統(tǒng)存在的重大缺陷和問題,指導(dǎo)開發(fā)人員進(jìn)行改進(jìn)和完善,保證軟件能夠安全可靠地應(yīng)用于國(guó)家的信息化建設(shè)中。本文從性能測(cè)試的基礎(chǔ)概念入手,結(jié)合實(shí)例,闡述了如何使用性能測(cè)試工具LoadRunner進(jìn)行測(cè)試以及如何對(duì)測(cè)試結(jié)果進(jìn)行分析。LoadRunner只是性能測(cè)試的利器之一,為了更好地進(jìn)行測(cè)試,還需要學(xué)習(xí)和掌握更多性能測(cè)試方面的工具。
參考文獻(xiàn):
[1]柳純錄.軟件評(píng)測(cè)師教程[M].北京:清華大學(xué)出版社,2005.
[2]韓明軍.軟件性能測(cè)試過程[J].軟件工程與標(biāo)準(zhǔn)化,2007(11).
[3]桑圣洪,胡飛.性能測(cè)試工具LoadRunner的工作機(jī)理及關(guān)鍵技術(shù)研究[J].科學(xué)技術(shù)與工程,2007,7(6).
[4]黃茂生.分析故障數(shù)據(jù),提高軟件測(cè)試的缺陷發(fā)現(xiàn)率[J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn);2003(04).
[5]李怡,周國(guó)祥.基于LoadRunner的一種性能測(cè)試流程方案研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究,2009(11).
[6]侯勇,張海林.自動(dòng)化測(cè)試中的關(guān)鍵字驅(qū)動(dòng)腳本技術(shù)[J].電子科技,2006(2).
[7]劉洪波,呂貴.軟件自動(dòng)測(cè)試?yán)碚撛趫D象編輯軟件測(cè)試中的應(yīng)用[J].桂林電子工業(yè)學(xué)院學(xué)報(bào),2002(6).