專利名稱:基于web服務(wù)的自動(dòng)化測試裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)測試領(lǐng)域,尤其涉及一種基于web服務(wù)的自動(dòng)化測試裝置及其方法。
背景技術(shù):
軟件測試就是在軟件投入運(yùn)行前,對軟件需求分析、設(shè)計(jì)規(guī)格說明書和編碼的最終復(fù)審,是軟件質(zhì)量保障的關(guān)鍵步驟。其定義可簡略概括為:為了發(fā)現(xiàn)錯(cuò)誤而運(yùn)行程序的過程。隨著軟件規(guī)模的不斷擴(kuò)大,軟件質(zhì)量問題已成為制約計(jì)算機(jī)發(fā)展的主要因素之一。作為保證軟件質(zhì)量和可靠性的手段,軟件測試起著不可替代的作用。隨著信息化的發(fā)展和技術(shù)的進(jìn)步,信息化軟件的架構(gòu)也由C/S結(jié)構(gòu)發(fā)展到了現(xiàn)在的B/S架構(gòu),如今信息化軟件的主流正是通過Internet訪問,基于Web的應(yīng)用程序。和以往的軟件相比,基于Web的信息化軟件有著不同于以往軟件的特點(diǎn):I)集中包括數(shù)據(jù)庫集中,信息系統(tǒng)管理集中,業(yè)務(wù)管理集約化。2)大分布按照地域廣泛分布,這與“集中”的特點(diǎn)是對立統(tǒng)一的。3)大量包括數(shù)據(jù)量大,業(yè)務(wù)量大。正是由于以上的特點(diǎn),基于Web的信息化軟件相比傳統(tǒng)軟件,帶來了非常大的優(yōu)越性,但同時(shí)也帶來了很多挑戰(zhàn),這是因?yàn)榛赪eb的信息系統(tǒng)的大分布,決定了 Web服務(wù)器要同時(shí)接受大量的數(shù)據(jù)請求。這樣一旦Web服務(wù)器癱瘓即將造成巨大的損失。這就對Web系統(tǒng)的性能提出了要求,要求產(chǎn)品在上線前必須接受嚴(yán)格的性能測試。
發(fā)明內(nèi)容
基于上述技術(shù)問題,本發(fā)明主要針對基于Web的性能測試,對自動(dòng)化測試腳本進(jìn)行設(shè)計(jì)、錄制和完善,提出了一套新穎的基于web服務(wù)的自動(dòng)化測試裝置及其方法。一方面,本發(fā)明提出了 一種基于web服務(wù)的自動(dòng)化測試裝置,包括,客戶端,搭載各種web服務(wù)的管理服務(wù)器和網(wǎng)絡(luò)性能測試軟件,在其基礎(chǔ)上搭建的虛擬測試環(huán)境,所述虛擬測試環(huán)境包括:虛擬指令創(chuàng)建模塊,用于向客戶端發(fā)送創(chuàng)建虛擬用戶和系統(tǒng)負(fù)載指令;控制運(yùn)行模塊,用于組織所述虛擬指令創(chuàng)建模塊所創(chuàng)建的系統(tǒng)負(fù)載,設(shè)定虛擬用戶數(shù)量,并生成和運(yùn)行測試腳本;分析模塊,保存運(yùn)行所述測試腳本的所有數(shù)據(jù),并對所得到的數(shù)據(jù)進(jìn)行分析。所述虛擬用戶模擬真實(shí)用戶的客戶端業(yè)務(wù)操作行為。所述控制運(yùn)行模塊根據(jù)所述系統(tǒng)負(fù)載的業(yè)務(wù)流程和所設(shè)定的虛擬用戶數(shù)量生成所述測試腳本。所述控制運(yùn)行模塊在生成測試腳本時(shí)在所述測試腳本中插入事務(wù),以便在所述分析模塊進(jìn)行分析時(shí)查看到該事務(wù)的響應(yīng)時(shí)間。所述控制運(yùn)行模塊在生成測試腳本時(shí)在該測試腳本中插入一集合點(diǎn)。
在運(yùn)行該測試腳本時(shí),在所述集合點(diǎn)處使多個(gè)虛擬用戶執(zhí)行同一操作,以提高并發(fā)程度。另一方面,本發(fā)明還提出一種基于web服務(wù)的自動(dòng)化測試裝置,包括:A.向客戶端發(fā)送創(chuàng)建虛擬用戶和系統(tǒng)負(fù)載指令;B.組織所述虛擬指令創(chuàng)建模塊所創(chuàng)建的系統(tǒng)負(fù)載,設(shè)定虛擬用戶數(shù)量,并生成和運(yùn)行測試腳本;C.保存運(yùn)行所述測試腳本的所有數(shù)據(jù),并對所得到的數(shù)據(jù)進(jìn)行分析。本發(fā)明提出了一種基于web服務(wù)的自動(dòng)化測試裝置及其方法,客戶端,搭載各種web服務(wù)的管理服務(wù)器和網(wǎng)絡(luò)性能測試軟件,在其基礎(chǔ)上搭建的虛擬測試環(huán)境,所述虛擬測試環(huán)境包括虛擬指令創(chuàng)建模塊,用于向客戶端發(fā)送創(chuàng)建虛擬用戶和系統(tǒng)負(fù)載指令;控制運(yùn)行模塊,用于組織所述虛擬指令創(chuàng)建模塊所創(chuàng)建的系統(tǒng)負(fù)載,設(shè)定虛擬用戶數(shù)量,并生成和運(yùn)行測試腳本;分析模塊,保存運(yùn)行所述測試腳本的所有數(shù)據(jù),并對所得到的數(shù)據(jù)進(jìn)行分析。本發(fā)明可以縮短軟件開發(fā)的測試周期、進(jìn)度快、測試效率高且充分利用硬件資源。
圖1示意性地示出了根據(jù)本發(fā)明的基于web服務(wù)的自動(dòng)化測試裝置的系統(tǒng)結(jié)構(gòu)圖。圖2示意性地示出了根據(jù)本發(fā)明的自動(dòng)化web性能方法的流程圖。
具體實(shí)施例方式以下結(jié)合附圖詳細(xì)描述本發(fā)明的技術(shù)方案?,F(xiàn)有技術(shù)的軟件測試至少存在以下的局限性:A、無法覆蓋所有代碼路徑,功能性測試用例在每輪測試中都是必不可少的,具有一定的機(jī)械性、重復(fù)性。B、一些與時(shí)序、死鎖、資源沖突、多線程相關(guān)的錯(cuò)誤,手工測試很難捕捉。C、進(jìn)行系統(tǒng)負(fù)載、性能測試時(shí),一些模擬大量數(shù)據(jù)或大量并發(fā)用戶等各種場合很難用手工進(jìn)行測試。D、進(jìn)行系統(tǒng)可靠性測試,需要模擬系統(tǒng)運(yùn)行多久時(shí)間的時(shí)候能穩(wěn)定運(yùn)行,這些都是手工測試很難進(jìn)行的。E、手工測試速度相對比較慢,如果一天進(jìn)行幾百個(gè)測試用例,在一天內(nèi)用手工進(jìn)行測試很難完成。相對地,本發(fā)明的自動(dòng)化測試裝置至少具備以下優(yōu)勢:A、縮短軟件開發(fā)的測試周期,進(jìn)度快。B、測試效率高(充分利用硬件資源)。C、節(jié)省人力資源,降低測試成本。D、增強(qiáng)測試的穩(wěn)定性、可靠性,提高測試的準(zhǔn)確度和精確度,增加軟件信任度。E、使用測試工具相對比較容易,能提高測試結(jié)果。F、能進(jìn)行負(fù)載、性能測試,這些手工都無法完成。當(dāng)然,在實(shí)際工作中要確保能用自動(dòng)化測試的事情決不用手工測試,同時(shí)要做到適合手工測試的內(nèi)容決不要花費(fèi)高昂的成本做自動(dòng)化測試。另外,不要因?yàn)槟撤矫娌荒茏詣?dòng)化測試而不做測試。本發(fā)明的自動(dòng)測試裝置尤其適合于單元測試、集成測試、系統(tǒng)負(fù)載測試、性能測試、穩(wěn)定性測試、可靠性測試等。圖1示意性地示出了根據(jù)本發(fā)明的基于web服務(wù)的自動(dòng)化測試裝置的系統(tǒng)結(jié)構(gòu)圖。如圖所示,本發(fā)明的基于web服務(wù)的自動(dòng)化測試裝置100包括包括,客戶端,搭載各種web服務(wù)的管理服務(wù)器和網(wǎng)絡(luò)性能測試軟件,其特征在于,在其基礎(chǔ)上搭建的虛擬測試環(huán)境。所述虛擬測試環(huán)境包括用于創(chuàng)建虛擬用戶和系統(tǒng)負(fù)載的虛擬指令創(chuàng)建模塊101 ;用于組織虛擬指令創(chuàng)建模塊101所創(chuàng)建的系統(tǒng)負(fù)載、設(shè)定虛擬用戶數(shù)量并生成和運(yùn)行測試腳本的控制運(yùn)行模塊102 ;以及保存運(yùn)行測試腳本的所有數(shù)據(jù)并對所得到的數(shù)據(jù)進(jìn)行分析的分析模塊103。通過虛擬指令創(chuàng)建模塊101,用戶可簡便創(chuàng)建起虛擬用戶和系統(tǒng)負(fù)載。該虛擬指令創(chuàng)建模塊101能生成虛擬用戶,以虛擬用戶的方式模擬真實(shí)用戶的業(yè)務(wù)操作行為。后續(xù)的組件將其轉(zhuǎn)化為測試腳本??刂七\(yùn)行模塊102根據(jù)系統(tǒng)負(fù)載的業(yè)務(wù)流程和所設(shè)定的虛擬用戶數(shù)量生成所述測試腳本。例如,通過控制運(yùn)行模塊102,測試人員可以快速地組織起多用戶的測試方案(負(fù)載方案、業(yè)務(wù)流程組合與虛擬用戶數(shù)量),使測試過程自動(dòng)化。同時(shí),控制運(yùn)行模塊102也可以用來限定負(fù)載方案。此外,控制運(yùn)行模塊102還可以在生成測試腳本時(shí)在測試腳本中插入事務(wù),以便在分析模塊103進(jìn)行分析時(shí)查看到該事務(wù)的響應(yīng)時(shí)間?;蛘撸刂七\(yùn)行模塊102也可以在生成測試腳本時(shí)在該測試腳本中插入一集合點(diǎn)。在運(yùn)行該測試腳本時(shí),在集合點(diǎn)處使多個(gè)虛擬用戶執(zhí)行同一操作,以提高并發(fā)程度。此外,控制運(yùn)行模塊102還可以為測試腳本設(shè)定迭代次數(shù)??刂七\(yùn)行模塊102使用虛擬指令創(chuàng)建模塊101生成的腳本對目標(biāo)軟件進(jìn)行模擬場景測試,場景運(yùn)行后,所有的數(shù)據(jù)將由分析模塊103保留并對所得的數(shù)據(jù)進(jìn)行分析。圖2示意性地示出了根據(jù)本發(fā)明的自動(dòng)化web性能測試方法的流程圖。如圖2所示,本發(fā)明的自動(dòng)化web性能測試方法包括向客戶端發(fā)送創(chuàng)建虛擬用戶和系統(tǒng)負(fù)載指令201 ;組織所述虛擬指令創(chuàng)建模塊所創(chuàng)建的系統(tǒng)負(fù)載202,設(shè)定虛擬用戶數(shù)量,并生成和運(yùn)行測試腳本;保存運(yùn)行所述測試腳本的所有數(shù)據(jù),并對所得到的數(shù)據(jù)進(jìn)行分析203。在創(chuàng)建測試腳本時(shí),用戶可以選擇適當(dāng)?shù)膮f(xié)議,web服務(wù)器一般選擇http協(xié)議。錄制方式一般選擇基于HTML的腳本,但有下列情況選擇基于URL的腳本。不是基于瀏覽器的應(yīng)用程序,應(yīng)用程序中包含JavaScript腳本且產(chǎn)生了請求,基于瀏覽器的應(yīng)用程序使用了https協(xié)議。在錄制過程中不要后退頁面。如果想測定某個(gè)操作的響應(yīng)時(shí)間,可以在腳本中插入事務(wù),使用事務(wù)把該操作包裝起來。分析執(zhí)行結(jié)果的時(shí)候可以查看到該事務(wù)的響應(yīng)時(shí)間。此外,在該步驟201中還可以插入集合點(diǎn),以使多個(gè)用戶并發(fā)進(jìn)行同一操作,提高操作的并發(fā)程度,以對服務(wù)器增加負(fù)載,測試并發(fā)能力。此外,用戶還可以設(shè)置網(wǎng)絡(luò)帶寬以模擬不同帶寬的網(wǎng)絡(luò),設(shè)置迭代次數(shù)。此外,該步驟還包括對腳本進(jìn)行參數(shù)化,設(shè)置參數(shù)變更方式,以及關(guān)聯(lián)腳本。在部署測試場景并運(yùn)行測試腳本時(shí),部署測試場景主要包含:選擇腳本,設(shè)定執(zhí)行用戶數(shù),選擇測試負(fù)載機(jī),設(shè)置腳本執(zhí)行的方式,設(shè)置集合點(diǎn)點(diǎn),設(shè)置運(yùn)行時(shí)間設(shè)定。如果要模擬的用戶數(shù)比較多,應(yīng)該設(shè)置多臺(tái)測試負(fù)載機(jī),一般主流的PC機(jī)至少能模擬100個(gè)用戶對服務(wù)器的訪問。此外,設(shè)置腳本的執(zhí)行方式包括設(shè)置用戶的啟動(dòng)方式和設(shè)置用戶的終止方式。此外,該步驟還可以設(shè)置集合點(diǎn),并可以設(shè)置用戶通過集合點(diǎn)的方式。當(dāng)瀏覽web頁面較大時(shí),在測試的時(shí)候可能出現(xiàn)超時(shí)(timeout)錯(cuò)誤。針對該問題,可以適當(dāng)修正超時(shí)數(shù)值。此外,還可以設(shè)置IP欺騙。如果服務(wù)器對用戶的IP有限制(安全原因),則需要啟用IP欺騙。設(shè)置IP欺騙應(yīng)該注意:1)測試負(fù)載機(jī)應(yīng)該使用靜態(tài)IP ;2)在選擇測試負(fù)載機(jī)之前開啟IP欺騙開關(guān)。此外,還可以設(shè)置服務(wù)器監(jiān)控計(jì)數(shù)器。包含:內(nèi)存,CPU,線程,進(jìn)程,網(wǎng)絡(luò),磁盤。在分析測試結(jié)果時(shí),可以查看分析結(jié)果、查看事務(wù)的響應(yīng)時(shí)間、服務(wù)器的平均吞吐量,執(zhí)行用戶人數(shù)等。此外,還可以查看線程圖,用戶變化圖,響應(yīng)時(shí)間圖,吞吐量圖;查看服務(wù)器監(jiān)控的計(jì)數(shù)器圖;分析各個(gè)性能指標(biāo)是否符合需求,比如:可用內(nèi)存曲線是否正常,是否存在內(nèi)存泄漏;CPU利用率曲線是否平緩,平均利用率是否低于90% ;線程數(shù)是否正常,而不是一直在增長;網(wǎng)絡(luò)帶寬是否滿足流量需求;磁盤是否滿足用戶操作要求等等;分析各個(gè)曲線圖是否存在異常情況,比如:響應(yīng)時(shí)間是否滿足需求;系統(tǒng)是否支持要求的并發(fā);隨著負(fù)載的增加,吞吐量是否同樣增加,吞吐量是否存在瓶頸等等。有時(shí)候分析單個(gè)要素并不能反映存在的問題,需要多個(gè)要素聯(lián)系起來進(jìn)行分析。t匕如,可以把用戶數(shù)的變化圖和吞吐量圖聯(lián)系起來進(jìn)行分析。本發(fā)明的裝置支持把兩個(gè)表合并進(jìn)行分析,把用戶數(shù)變化圖和吞吐量變化圖合并,就可以觀察吞吐量是否隨著用戶數(shù)的變化而相應(yīng)時(shí)間。如果隨著用戶數(shù)的增加,吞吐量持平或者下降,說明此時(shí)系統(tǒng)吞吐量達(dá)到了最大值,系統(tǒng)達(dá)到了瓶頸。
權(quán)利要求
1.一種基于web服務(wù)的自動(dòng)化測試裝置,包括,客戶端,搭載各種web服務(wù)的管理服務(wù)器和網(wǎng)絡(luò)性能測試軟件,其特征在于,在其基礎(chǔ)上搭建的虛擬測試環(huán)境,所述虛擬測試環(huán)境包括: 虛擬指令創(chuàng)建模塊,用于向客戶端發(fā)送創(chuàng)建虛擬用戶和系統(tǒng)負(fù)載指令; 控制運(yùn)行模塊,用于組織所述虛擬指令創(chuàng)建模塊所創(chuàng)建的系統(tǒng)負(fù)載,設(shè)定虛擬用戶數(shù)量,并生成和運(yùn)行測試腳本; 分析模塊,保存運(yùn)行所述測試腳本的所有數(shù)據(jù),并對所得到的數(shù)據(jù)進(jìn)行分析。
2.如權(quán)利要求1所述的自動(dòng)化測試裝置,其特征在于,所述虛擬用戶模擬真實(shí)用戶的客戶端業(yè)務(wù)操作行為。
3.如權(quán)利要求1所述的自動(dòng)化測試裝置,其特征在于,所述控制運(yùn)行模塊根據(jù)所述系統(tǒng)負(fù)載的業(yè)務(wù)流程和所設(shè)定的虛擬用戶數(shù)量生成所述測試腳本。
4.如權(quán)利要求1所述的自動(dòng)化測試裝置,其特征在于,所述控制運(yùn)行模塊在生成測試腳本時(shí)在所述測試腳本中插入事務(wù),以便在所述分析模塊進(jìn)行分析時(shí)查看到該事務(wù)的響應(yīng)時(shí)間。
5.如權(quán)利要求1所述的自動(dòng)化測試裝置,其特征在于,所述控制運(yùn)行模塊在生成測試腳本時(shí)在該測試腳本中插入一集合點(diǎn)。
6.如權(quán)利要求5所述的自動(dòng)化測試裝置,其特征在于,在運(yùn)行該測試腳本時(shí),在所述集合點(diǎn)處使多個(gè)虛擬用戶執(zhí)行同一操作,以提高并發(fā)程度。
7.一種基于web服務(wù)的自動(dòng)化測試裝置,其特征在于,包括: A.向客戶端發(fā)送創(chuàng)建虛擬用戶和系統(tǒng)負(fù)載指令; B.組織所述虛擬指令創(chuàng)建模塊所創(chuàng)建的系統(tǒng)負(fù)載,設(shè)定虛擬用戶數(shù)量,并生成和運(yùn)行測試腳本; C.保存運(yùn)行所述測試腳本的所有數(shù)據(jù),并對所得到的數(shù)據(jù)進(jìn)行分析。
全文摘要
本發(fā)明提出了一種基于web服務(wù)的自動(dòng)化測試裝置及其方法,該裝置包括虛擬指令創(chuàng)建模塊,用于創(chuàng)建虛擬用戶和系統(tǒng)負(fù)載;控制運(yùn)行模塊,用于組織所述虛擬指令創(chuàng)建模塊所創(chuàng)建的系統(tǒng)負(fù)載,設(shè)定虛擬用戶數(shù)量,并生成和運(yùn)行測試腳本;分析模塊,保存運(yùn)行所述測試腳本的所有數(shù)據(jù),并對所得到的數(shù)據(jù)進(jìn)行分析。本發(fā)明可以縮短軟件開發(fā)的測試周期、進(jìn)度快、測試效率高且充分利用硬件資源。
文檔編號H04L12/26GK103139006SQ201110398680
公開日2013年6月5日 申請日期2011年12月5日 優(yōu)先權(quán)日2011年12月5日
發(fā)明者蔣志勇 申請人:上海博騰信息科技有限公司