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