胡 芳
[摘要]隨著軟件應(yīng)用越來(lái)越廣,軟件質(zhì)量成為人們共同關(guān)注的話題,軟件性能則是軟件質(zhì)量中相當(dāng)重要的部分。常規(guī)的軟件性能測(cè)試中都需要引入工具,QAload則是普遍運(yùn)用于軟件性能測(cè)試的工具之一。因此,以常規(guī)的性能測(cè)試的過(guò)程為基礎(chǔ),討論如果用QAload進(jìn)行性能測(cè)試。
[關(guān)鍵詞]軟件性能測(cè)試QAload
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)1220061-01
一、引言
隨著企業(yè)需求的日益增長(zhǎng)以及計(jì)算機(jī)技術(shù)的不斷發(fā)展。企業(yè)的應(yīng)用系統(tǒng)承載了越來(lái)越多的負(fù)載,從而對(duì)系統(tǒng)的要求越來(lái)越高,要求企業(yè)的應(yīng)用系統(tǒng)在滿足特定功能的同時(shí)也需要滿足相當(dāng)?shù)男阅苄枨?。系統(tǒng)性能的好壞直接影響企業(yè)對(duì)外提供服務(wù)的質(zhì)量,所以,需要用性能測(cè)試保證軟件的質(zhì)量。
二、性能測(cè)試基礎(chǔ)
軟件的性能包括很多內(nèi)容,如軟件對(duì)用戶操作的響應(yīng)時(shí)間,軟件最多支持的并發(fā)用戶數(shù),系統(tǒng)最大的業(yè)務(wù)處理量,軟件長(zhǎng)時(shí)間連續(xù)運(yùn)行的穩(wěn)定性等等。
軟件的性能測(cè)試同軟件的功能測(cè)試類型,需要經(jīng)歷測(cè)試分析,測(cè)試設(shè)計(jì),測(cè)試執(zhí)行,測(cè)試結(jié)果分析幾個(gè)過(guò)程,下面將對(duì)各個(gè)過(guò)程進(jìn)行分別討論。
(一)測(cè)試分析。測(cè)試的分析室性能測(cè)試工程中非常重要的部分,直接影響測(cè)試的正確性及有效性。測(cè)試分析部分的主旨是根據(jù)對(duì)系統(tǒng)的全面分析,包括系統(tǒng)架構(gòu)的分析和系統(tǒng)的用戶分析等,來(lái)確定性能測(cè)試的目的和性能指標(biāo)。
1.確定測(cè)試目的。在測(cè)試分析的過(guò)程中,首先要明確測(cè)試目的,為制定測(cè)試計(jì)劃做好準(zhǔn)備。測(cè)試的目的通常分為三類:性能符合性驗(yàn)證,性能能力驗(yàn)證,系統(tǒng)性能調(diào)優(yōu)。
性能符合性驗(yàn)證主要是為了檢測(cè)系統(tǒng)的性能是否達(dá)到用戶對(duì)系統(tǒng)性能的要求。
性能能力驗(yàn)證主要是為了了解軟件系統(tǒng)的整體性能狀況,如軟件支持的最大并發(fā)用戶數(shù)等等。
系統(tǒng)性能調(diào)優(yōu)則是通過(guò)性能測(cè)試找出系統(tǒng)性能的瓶頸,分析出導(dǎo)致系統(tǒng)瓶頸的因素,通過(guò)改善這些因素達(dá)到提高系統(tǒng)性能的目的。
2.確定性能指標(biāo)。性能指標(biāo)主要包括系統(tǒng)的響應(yīng)時(shí)間,最大并發(fā)用戶數(shù),吞吐率,資源利用率等等。
性能指標(biāo)的確定根據(jù)軟件系統(tǒng)的不同而不同。有的可以根據(jù)業(yè)界的通用標(biāo)準(zhǔn)而制定,有的則需要跟產(chǎn)品的其他版本進(jìn)行比對(duì)。
(二)測(cè)試設(shè)計(jì)。測(cè)試設(shè)計(jì)部分主要是負(fù)責(zé)根據(jù)測(cè)試分析的結(jié)果,進(jìn)行測(cè)試案例的設(shè)計(jì)。測(cè)試案例設(shè)計(jì)的主要部分是確定測(cè)試場(chǎng)景。
確定測(cè)試場(chǎng)景是依據(jù)用戶行為模型以及測(cè)試目的建立測(cè)試用例和場(chǎng)景的過(guò)程。一個(gè)典型的場(chǎng)景包括操作序列,并發(fā)用戶數(shù)量條件。不同的測(cè)試目的也對(duì)應(yīng)著不同的測(cè)試場(chǎng)景。例如在系統(tǒng)符合性驗(yàn)證的測(cè)試中,則主要是模仿常規(guī)的用戶操作系列和并發(fā)用戶數(shù),來(lái)檢驗(yàn)系統(tǒng)是否滿足用戶的需求。在系統(tǒng)能力驗(yàn)證的測(cè)試中,則需要設(shè)計(jì)在常規(guī)的用戶操作系列下盡可能多的并發(fā)用戶數(shù)的案例,來(lái)達(dá)到“探索”系統(tǒng)能力的目的。而系統(tǒng)調(diào)優(yōu)的測(cè)設(shè)中,則需要針對(duì)用戶操作系列中的若干操作點(diǎn),設(shè)計(jì)不同的并發(fā)用戶數(shù)的案例,找出系統(tǒng)的性能瓶頸。
(三)測(cè)試執(zhí)行。測(cè)試執(zhí)行部分是根據(jù)測(cè)試設(shè)計(jì)的結(jié)果,將所得到的測(cè)試案例執(zhí)行的過(guò)程。測(cè)試執(zhí)行部分分為搭建測(cè)試環(huán)境,部署測(cè)試腳本和測(cè)試場(chǎng)景,執(zhí)行測(cè)試和記錄結(jié)果三部分。
測(cè)試環(huán)境的搭建旨在保證測(cè)試結(jié)果的正確性和有效性。包括軟件運(yùn)行的軟硬件環(huán)境的搭建和數(shù)據(jù)環(huán)境的搭建。
部署測(cè)試腳本和測(cè)試場(chǎng)景通常是根據(jù)設(shè)定的測(cè)試場(chǎng)景,利用工具對(duì)其進(jìn)行部署。部署結(jié)束后就可以執(zhí)行測(cè)試并記錄結(jié)果。
(四)測(cè)試結(jié)果分析。性能測(cè)試結(jié)果分析是性能測(cè)試過(guò)程中最困難,然而也是最重要的步驟。性能測(cè)試結(jié)果分析需要分析人員對(duì)測(cè)試結(jié)果中的各項(xiàng)數(shù)據(jù)有準(zhǔn)確的認(rèn)識(shí),明確各指標(biāo)之間的關(guān)系。性能測(cè)試結(jié)果的各項(xiàng)數(shù)據(jù)指標(biāo)并沒(méi)有顯而易見(jiàn)的聯(lián)系,在多數(shù)情況下都需要綜合考慮各種因素,才能得出最終的結(jié)論。
三、用QAload進(jìn)行軟件測(cè)試
(一)QAload簡(jiǎn)介
QALoad為主從應(yīng)用系統(tǒng)、企業(yè)資源規(guī)劃(ERP)和電子商務(wù)應(yīng)用軟件的自動(dòng)化負(fù)載與壓力測(cè)試工具。QALoad模擬成百或上千的使用者執(zhí)行關(guān)鍵業(yè)務(wù),對(duì)應(yīng)用程序進(jìn)行負(fù)載測(cè)試。
(二)QAload的產(chǎn)品組成
QALoad從產(chǎn)品組成來(lái)說(shuō),分為4各部分,Scrip Development Workben
ch,Conductor,Player,Analyze。
Scrip Development Workbench:這個(gè)可以看作是錄制,編輯腳本的IDE。它支持的協(xié)議包括WWW,數(shù)據(jù)庫(kù)訪問(wèn)等等。錄制的動(dòng)作序列最終可以轉(zhuǎn)換為一個(gè)cpp文件。
Conductor:對(duì)于腳本運(yùn)行時(shí)的配置,由Conductor負(fù)責(zé)。對(duì)于實(shí)際的一個(gè)測(cè)試,特別是性能測(cè)試,需要確定:1.部署在哪些player上面;2.有
多少虛擬用戶(virtual user);3.每個(gè)用戶運(yùn)行多少次Transaction等等。
Player:Player就是一個(gè)Agent,一個(gè)運(yùn)行測(cè)試的agent,可以部屬在網(wǎng)絡(luò)上的多臺(tái)機(jī)器上。
Analyze:Analyze是測(cè)試結(jié)果的分析器。它可以把測(cè)試結(jié)果的各個(gè)方面展現(xiàn)出來(lái)。
(三)用QAload進(jìn)行性能測(cè)試
下面介紹用QAload進(jìn)行性能測(cè)試的步驟:
腳本錄制:首先在workbench里錄制腳本。選擇相應(yīng)的通信協(xié)議后點(diǎn)擊“錄制”按鈕,此時(shí)用戶操作開(kāi)始被記錄,完成用戶操作系列后結(jié)束錄制。一個(gè)錄制過(guò)程的結(jié)果是一個(gè)capture文件(以cap為后綴名)。
編輯并編譯腳本:錄制完后可以創(chuàng)建一個(gè)可編輯的腳本文件,即一個(gè).c文件,根據(jù)測(cè)試的需要對(duì)腳本進(jìn)行編輯,之后編譯腳本生成.dll文件。
部署測(cè)試腳本和測(cè)試場(chǎng)景:啟動(dòng)conductor,新建一個(gè)session,根據(jù)測(cè)試案例配置session,即指定player和dll文件。
執(zhí)行測(cè)試:在conductor里,執(zhí)行此session。執(zhí)行文件會(huì)自動(dòng)發(fā)送到player那里執(zhí)行。
分析結(jié)果:player執(zhí)行dll,產(chǎn)生一個(gè)timing文件,執(zhí)行完畢后,conductor把所有player產(chǎn)生的timing文件交給Analyze分析,analyze生成各種報(bào)表,把測(cè)試結(jié)果展現(xiàn)給用戶。
參考文獻(xiàn):
[1]段念,軟件性能測(cè)試過(guò)程詳解與案例剖析[M].北京:清華大學(xué)出版社,2006.
[2]http://www.51testing.com/index.php?uid-764-action-viewspace-itemid-16628.