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