一種基于云計算環(huán)境的分布式Web測試方法
【專利摘要】本發(fā)明設(shè)計了一種基于云計算環(huán)境的Web測試方法,利用云計算的彈性計算資源,實現(xiàn)彈性的Web測試。方法設(shè)計了Web測試的彈性部署環(huán)境,和Web測試的彈性測試客戶端。彈性部署環(huán)境的目的是為了模擬大規(guī)模用戶請求時的服務(wù)器部署,它利用云計算構(gòu)架實現(xiàn)動態(tài)的服務(wù)器節(jié)點增刪、Web應(yīng)用自動部署、請求和相應(yīng)的監(jiān)視、以及服務(wù)器節(jié)點處理請求的負(fù)載均衡。彈性測試客戶端的目的是為了模擬大規(guī)模用戶請求行為,它同樣利用云計算構(gòu)架的虛擬化資源來創(chuàng)建海量的用戶請求,通過可配置的方式設(shè)置測試請求的詳細(xì)信息,并實現(xiàn)大規(guī)模測試結(jié)果的統(tǒng)計。
【專利說明】一種基于云計算環(huán)境的分布式Web測試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式網(wǎng)絡(luò)和軟件測試方法,尤其涉及一種基于云計算環(huán)境的分布式Web應(yīng)用測試方法,屬于分布式Web應(yīng)用測試【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]目前在互聯(lián)網(wǎng)上的Web應(yīng)用繁多,從傳統(tǒng)的Web網(wǎng)站,到類似Gmail的富用戶體驗應(yīng)用,各種Web應(yīng)用為用戶提供了各類信息服務(wù),并開始取代桌面應(yīng)用程序的很多功能,成為互聯(lián)網(wǎng)應(yīng)用,乃至整個計算機應(yīng)用的發(fā)展趨勢。同時隨著移動設(shè)備(智能手機、平板電腦)的興起,Web應(yīng)用的跨平臺訪問特性使得它成為未來移動互聯(lián)網(wǎng)應(yīng)用開發(fā)的首選,將為海量的用戶提供服務(wù)。在這種趨勢下,對Web應(yīng)用的功能和性能就有了更高的要求,Web應(yīng)用的開發(fā)者需要保證程序的功能和性能在海量請求和資源有限的情況下達到讓用戶滿意的效果,保證這種效果的方式就是進行完善的Web應(yīng)用測試。
[0003]Web應(yīng)用測試是對Web應(yīng)用的功能和性能進行檢查,保證其滿足應(yīng)用設(shè)計需求和用戶訪問要求,在傳統(tǒng)軟件工程方法中,對Web應(yīng)用測試的各個方面進行了詳細(xì)的設(shè)計:一般Web應(yīng)用測試將包括單元測試、功能測試、壓力測試、用戶接受度測試等,從白盒及黑盒兩種途徑對Web應(yīng)用的質(zhì)量進行保證。然而,傳統(tǒng)的Web應(yīng)用測試方法局限于有限的測試環(huán)境中,其局限主要體現(xiàn)在三個方面:第一,測試的部署環(huán)境與真實部署環(huán)境不同,無法實現(xiàn)對大規(guī)模、分布式部署環(huán)境的模擬;第二,測試的客戶請求數(shù)量較為有限,在壓力測試中,受到測試客戶端的計算能力限制,無法模擬真實互聯(lián)網(wǎng)上海量用戶訪問的情況;第三,無法完整地測試客戶端兼容性問題(例如不同瀏覽器終端訪問的問題)。
[0004]針對以上問題,發(fā)明人認(rèn)為利用云計算的資源彈性特性對Web測試進行改進是一種合理的方法,其根本目標(biāo)就在于實現(xiàn)測試部署環(huán)境和客戶端測試請求的彈性,從而以較小成本實現(xiàn)真實環(huán)境的Web應(yīng)用測試,為應(yīng)用的真實部署提供質(zhì)量保證。因此提出了如下創(chuàng)新的、具有動態(tài)彈性特性的分布式云計算Web測試方法。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種基于云計算的Web應(yīng)用測試方法,該方法利用云計算和分布式計算環(huán)境,可以有效模擬彈性的和海量的用戶請求情況,并提供彈性的Web應(yīng)用測試部署環(huán)境,結(jié)合自動化測試工具和監(jiān)控報表工具,使得Web應(yīng)用開發(fā)者可以以較小的硬件成本和較短的測試時問,實現(xiàn)大規(guī)模用戶壓力測試的能力,為Web應(yīng)用在真實互聯(lián)網(wǎng)環(huán)境中的成功部署和服務(wù)提供了質(zhì)量保證。
[0006]為實現(xiàn)上述目標(biāo),本發(fā)明的技術(shù)方案是:
[0007]一種基于云計算的Web應(yīng)用測試方法,所述方法包括Web測試的彈性部署環(huán)境,和Web測試的彈性測試客戶端,及其他自動化測試所需方法。
[0008]彈性部署環(huán)境模擬大規(guī)模用戶請求時的服務(wù)器部署,利用云計算構(gòu)架實現(xiàn)動態(tài)的服務(wù)器節(jié)點增刪、Web應(yīng)用自動部署、請求和相應(yīng)的監(jiān)視、以及服務(wù)器節(jié)點處理請求的負(fù)載均衡。彈性測試客戶端模擬大規(guī)模用戶請求行為,利用云計算構(gòu)架來創(chuàng)建海量的用戶請求客戶端,通過可配置的方式設(shè)置測試請求的詳細(xì)信息,并實現(xiàn)大規(guī)模測試結(jié)果的統(tǒng)計。彈性部署環(huán)境和測試客戶端都利用了云計算平臺的基礎(chǔ)設(shè)施服務(wù)層(Infrastructure as aService),來獲得彈性的資源和計算能力。
[0009]在彈性部署環(huán)境中,包括以下這些組件:
[0010]a)部署接入點:提供單點自動部署功能,將Web應(yīng)用的部署文件和資源(包括部署配置文件)傳輸?shù)綔y試部署環(huán)境中,傳輸方式包含以下幾種:
[0011]文件傳輸方式直接提交打包的部署文件和資源:開發(fā)者將Web應(yīng)用按照部署服務(wù)器要求打包,并通過文件傳輸接口(FTP,Web等)將部署包提交到接入點;
[0012]版本控制的同步和自動生成部署包:開發(fā)者在版本控制工具(SVN,GIT等)中將部署文件和資源同步到接入點,接入點調(diào)用腳本進行編譯等工作,生成部署包。
[0013]b)自動部署器:從接入點獲得部署包,根據(jù)部署配置文件,調(diào)用腳本進行部署。根據(jù)部署環(huán)境的要求(例如初始部署環(huán)境需要多少部署節(jié)點等)調(diào)整部署文件的目錄結(jié)構(gòu)(及依賴包的版本和位置),并找到對應(yīng)的部署環(huán)境(不同類型的應(yīng)用服務(wù)器,例如Java的應(yīng)用服務(wù)器)。聯(lián)系資源請求管理器和負(fù)載均衡器,提交Web應(yīng)用的部署信息,使后者能夠維護Web應(yīng)用的運行。
[0014]c)資源請求管理器:在部署前,為Web應(yīng)用分配所需資源,資源主要是指應(yīng)用服務(wù)器和數(shù)據(jù)服務(wù)器。在默認(rèn)情況下分配最小單位的資源,或根據(jù)用戶初期請求分配相應(yīng)容量的資源,在資源請求得到滿足后,將獲得的資源節(jié)點信息返回給負(fù)載均衡器。讀取部署配置文件中的數(shù)據(jù)訪問信息,分配和連接數(shù)據(jù)服務(wù)節(jié)點。
[0015]d)應(yīng)用服務(wù)器節(jié)點:由標(biāo)準(zhǔn)的應(yīng)用服務(wù)器構(gòu)成集群,每個節(jié)點接收由負(fù)載均衡器分發(fā)的請求,完成業(yè)務(wù)邏輯,并將響應(yīng)返回。應(yīng)用服務(wù)器節(jié)點部署在云計算環(huán)境中,每個節(jié)點對應(yīng)一個虛擬計算單元(例如一個虛擬機),由虛擬計算單元的彈性獲得應(yīng)用服務(wù)器集群的彈性,從而獲得動態(tài)的部署環(huán)境響應(yīng)能力。
[0016]e)數(shù)據(jù)服務(wù)節(jié)點:為Web應(yīng)用程序提供數(shù)據(jù)服務(wù),數(shù)據(jù)服務(wù)的類型主要包括:
[0017]數(shù)據(jù)庫服務(wù)
[0018]存儲服務(wù)
[0019] NoSQL數(shù)據(jù)服務(wù)
[0020]數(shù)據(jù)服務(wù)的訪問信息,由部署環(huán)境提供給開發(fā)者,并在部署配置文件中聲明,由資源請求管理器在部署前完成創(chuàng)建和連接工作。每個數(shù)據(jù)服務(wù)節(jié)點對應(yīng)虛擬計算單元,并形成集群,從而彈性的數(shù)據(jù)存儲和訪問能力。
[0021]f)訪問地址生成器:為部署的Web應(yīng)用提供訪問地址描述(XML),供測試客戶端連接。
[0022]g)資源規(guī)劃調(diào)度器:在測試過程中,根據(jù)兩個信息:
[0023]每個資源監(jiān)控器提供的應(yīng)用服務(wù)器節(jié)點資源信息,主要是獲得請求的數(shù)量:RS=(Rsi I i = 1...η},其中Rsi是每個節(jié)點上的請求數(shù)量,Rsi < Rmax, Rmax是每個節(jié)點最多能處理的請求數(shù)量;
[0024]負(fù)載均衡器提供的用戶請求總數(shù)Rt()tal。
[0025]當(dāng)以下任意一種情況發(fā)生的時候:[0026]當(dāng)某個節(jié)點的Rsi接近Rmax ;
[0027]當(dāng)請求總數(shù)Rtrtal大于Rmax*N時(N為當(dāng)前應(yīng)用服務(wù)器節(jié)點總數(shù))。
[0028]資源規(guī)劃調(diào)度器將聯(lián)系資源請求管理器,要求創(chuàng)建新的應(yīng)用服務(wù)器節(jié)點,并將創(chuàng)建的節(jié)點加入到服務(wù)器集群中。根據(jù)性能情況,資源規(guī)劃調(diào)度器可以維護一個資源池,存放一組預(yù)先創(chuàng)建的應(yīng)用服務(wù)器節(jié)點,以當(dāng)請求發(fā)生時,能快速返回所需節(jié)點。
[0029]h)負(fù)載均衡器:負(fù)載均衡器接收用戶請求,將請求分配到各個應(yīng)用服務(wù)器節(jié)點,并保證節(jié)點處理請求數(shù)量的均衡。每個應(yīng)用服務(wù)器節(jié)點都在負(fù)載均衡器中注冊,當(dāng)資源規(guī)劃調(diào)度器決定增加了應(yīng)用服務(wù)器節(jié)點之后,將通知負(fù)載均衡器注冊新節(jié)點。
[0030]i)資源監(jiān)控器:在應(yīng)用服務(wù)器節(jié)點所在的虛擬計算單元上,將部署資源監(jiān)控器,實時獲得當(dāng)前的資源消耗情況和處理請求/返回響應(yīng)的情況。監(jiān)控器有統(tǒng)計接口供資源調(diào)度規(guī)劃器調(diào)用,獲得當(dāng)前的資源和請求情況。負(fù)載均衡器也能通過資源監(jiān)控器的資源消耗情況,做出負(fù)載均衡決策。
[0031]j)同步控制機制:在各個應(yīng)用服務(wù)器節(jié)點之間保證對數(shù)據(jù)服務(wù)節(jié)點的訪問控制和實現(xiàn)數(shù)據(jù)同步功能。
[0032]k)統(tǒng)計控制中心:統(tǒng)計一段時間內(nèi)應(yīng)用服務(wù)器節(jié)點和數(shù)據(jù)服務(wù)節(jié)點的資源和處理請求狀況,創(chuàng)建報表,供最終的測試結(jié)果使用。
[0033]I)云資源接口:管理和調(diào)度虛擬計算單元,維護應(yīng)用服務(wù)器節(jié)點和數(shù)據(jù)服務(wù)節(jié)點鏡像,在創(chuàng)建應(yīng)用服務(wù)器節(jié)點和數(shù)據(jù)服務(wù)節(jié)點的時候,創(chuàng)建虛擬機等計算單元,管理計算單元的生命周期,獲取計算單元的運行信息。
[0034]m)容錯與遷移:當(dāng)某個應(yīng)用服務(wù)器節(jié)點由于宕機等原因無法處理相應(yīng)的時候,將包含Web應(yīng)用的服務(wù)器節(jié)點遷移到新的節(jié)點上,并自動更新負(fù)載均衡器信息。
[0035]在彈性測試客戶端中,包括以下這些組件:
[0036]a)測試腳本接收中心:用戶的測試工作由測試腳本來表達,用戶使用自動化工具錄制測試腳本,然后將測試腳本提交到測試腳本接收中心。測試腳本接收中心利用Web文件傳輸接口接收測試腳本,并提供測試腳本的運行、管理入口。
[0037]b)腳本驗證器:在腳本被接收之后,驗證腳本的有效性,比如xml有效性檢查,schema有效性檢查等,檢查主要涉及語法方面,而非語義方面。
[0038]c)測試腳本計劃任務(wù)中心:提供一個測試任務(wù)隊列,所有待執(zhí)行的測試任務(wù)都會被安排到測試任務(wù)隊列中,等待調(diào)度。任務(wù)中心提供測試的計劃任務(wù)功能,在資源限制的狀況下,調(diào)度隊列中的測試任務(wù)執(zhí)行。任務(wù)中心根據(jù)每個測試工作所需的時間和測試單元個數(shù),規(guī)劃生成彈性測試單元,部署測試腳本到彈性測試單元,開始測試任務(wù)。
[0039]d)測試管理中心:提供測試任務(wù)運行和管理的用戶接口,用戶訪問測試管理中心,獲得其測試任務(wù)的運行狀況,設(shè)定偏好測試時間和預(yù)訂的彈性測試單元個數(shù),并在測試完成之后獲得運行報表。
[0040]e)部署環(huán)境接口:部署環(huán)境是彈性測試客戶端的測試目標(biāo),測試目標(biāo)的信息(例如測試URL)通過此接口提交。部署環(huán)境接口完成包括驗證目標(biāo)Web應(yīng)用,獲取Web應(yīng)用地址,保持部署環(huán)境資源響應(yīng)能力等功能。
[0041]f)彈性測試單元:彈性測試單元是測試客戶端的主要部分,它跟部署環(huán)境中的彈性應(yīng)用服務(wù)器節(jié)點對應(yīng),提供測試請求發(fā)起端的彈性特性。每個測試單元都對應(yīng)一個虛擬的計算單元(例如一個虛擬機),在虛擬計算單元上部署和設(shè)置自動化和分布式測試軟件,這些自動化測試軟件完成實際的測試工作,我們采用目前具有分布式特性的自動化測試軟件,它們能保證各個測試單元之間的協(xié)同工作和負(fù)載均衡。
[0042]g)測試單元監(jiān)控:在彈性測試單元所在的虛擬計算單元上,將部署資源監(jiān)控器,負(fù)責(zé)監(jiān)控測試請求發(fā)起的情況。
[0043]h)云資源接口:管理和調(diào)度供虛擬測試單元使用的虛擬計算單元,在創(chuàng)建測試單元的時候,創(chuàng)建虛擬機等計算單元,管理計算單元的生命周期,獲取計算單元的運行信息。
[0044]i)測試報告生成中心:調(diào)用測試單元中自動化測試軟件的報表功能,并將這些數(shù)據(jù)整合,提供統(tǒng)一、多視圖的測試報告。支持自動化報表通知和分發(fā)功能,在測試完成之后立即通知用戶測試結(jié)果。
[0045]j)錯誤報告:當(dāng)發(fā)出的請求沒有響應(yīng),或者測試數(shù)據(jù)發(fā)生異常的情況,中斷正常的測試流程吧,發(fā)出錯誤報告,提供給用戶做下一步操作的依據(jù)。
[0046]彈性的部署環(huán)境和測試客戶端構(gòu)成了我們方法的主要部分,兩者均建立在彈性的虛擬計算單元之上,利用云計算的資源彈性功能,獲得測試能力的彈性特性。同時整合部署環(huán)境和測試客戶端方面的自動化工具和方法,獲得較好的測試效果。
[0047]以上兩個部分,都部署在云環(huán)境中(兩者可以部署在不同的云環(huán)境中,甚至利用分離的云環(huán)境做整合),除此之外,本技術(shù)方案還包括以下一些自動化測試組件:
[0048]a)腳本錄制工具:在用戶端,用戶利用腳本錄制工具生成測試腳本,腳本錄制工具通常由測試軟件提供,并提供自動化操作方式,用戶模擬和錄制測試過程,生成XML表示的測試腳本,然后這個測試腳本將被提交到測試客戶端的測試腳本接收中心,并開始實際測試工作。
[0049]b)測試報告工具:在用戶端提供實時的測試報告工具,連接測試客戶端的報告中心,獲取當(dāng)前測試運行的狀況和實時報表。
[0050]c)資源計費模塊:在部署環(huán)境和測試客戶端中都利用了云計算的虛擬計算單元,根據(jù)測試要求不同,它們會各自消耗不同數(shù)量的資源(資源個數(shù)和資源使用時間),這些資源使用情況構(gòu)成了測試運行的成本,計費模塊從部署環(huán)境和測試客戶端的資源監(jiān)控器中獲得資源使用信息(數(shù)據(jù)節(jié)點數(shù)量,節(jié)點消耗的計算/存儲/貸款等資源統(tǒng)計),計算成本,并作為用戶計費依據(jù)。
【專利附圖】
【附圖說明】
[0051]圖1為本發(fā)明的總體結(jié)構(gòu)示意圖;
[0052]圖2為本發(fā)明的部署環(huán)境的結(jié)構(gòu)示意圖;
[0053]圖3為本發(fā)明的測試客戶端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0054]下面結(jié)合附圖,通過實施例對本發(fā)明核心技術(shù)內(nèi)容作進一步詳細(xì)描述。
[0055]本實施例描述一個具體的基于云計算環(huán)境的分布式自動化測試結(jié)構(gòu)體系。
[0056]圖1表示了本發(fā)明的總體結(jié)構(gòu),包括用戶、彈性部署環(huán)境、彈性測試客戶端、和云資源層,形成的動態(tài)體系結(jié)構(gòu),在此體系上構(gòu)架的原型系統(tǒng)的總體功能可以概括如下:[0057]I)用戶需求
[0058]在測試框架中,用戶的測試需求來源于開發(fā)完成的Web應(yīng)用,當(dāng)Web應(yīng)用開發(fā)完成之后,用戶使用本測試框架的接口主要由兩個部分組成:第一是部署Web應(yīng)用,即測試目標(biāo);第二是錄制測試腳本,即模擬最終用戶的使用,編制測試內(nèi)容。用戶在其開發(fā)環(huán)境中,準(zhǔn)備這兩部分的內(nèi)容。
[0059]在使用彈性測試環(huán)境之前,用戶同時需要設(shè)定測試容量,及預(yù)期測試結(jié)果。測試容量的主要指標(biāo)包括單位時問內(nèi)接受請求的數(shù)量,部署Web應(yīng)用的服務(wù)器節(jié)點個數(shù),預(yù)期測試結(jié)果包括相應(yīng)時間、最大處理響應(yīng)個數(shù)等。這些參數(shù)被提交到彈性測試環(huán)境中,作為資源分配和測試報表的依據(jù)。
[0060]2)提交測試用例至彈性測試客戶端
[0061]用戶分別將Web應(yīng)用和錄制的測試用例腳本提交到彈性測試環(huán)境中,其中測試用例被提交到彈性測試客戶端中,彈性測試客戶端對腳本進行驗證,并按照測試容量參數(shù)規(guī)劃和測試客戶端資源,開始測試。
[0062]3)提交Web應(yīng)用至彈性部署環(huán)境
[0063]Web應(yīng)用被部署到彈性部署環(huán)境中,彈性部署環(huán)境中的應(yīng)用服務(wù)器節(jié)點上部署了Web應(yīng)用的實例,并利用前端的負(fù)載均衡器來分配和接受請求,彈性部署環(huán)境中的資源根據(jù)請求數(shù)量和響應(yīng)情況做自動的擴展。
[0064]4)彈性測試部署環(huán)境和彈性測試客戶端交互
[0065]彈性測試客戶端發(fā)起請求,彈性測試部署環(huán)境接收請求,返回響應(yīng)。請求的數(shù)量由用戶定義,分配客戶端滿足請求數(shù)量,彈性部署環(huán)境根據(jù)請求數(shù)量建立服務(wù)器集群和負(fù)載均衡,處理請求。經(jīng)過測試過程,能估算出為滿足目標(biāo)請求數(shù)量需要多少部署環(huán)境資源,以及在給定部署環(huán)境資源的情況下,特定請求數(shù)量下的性能情況如何。
[0066]5)云資源接口
[0067]彈性測試部署環(huán)境和測試客戶端均連接到云資源接口,云資源接口連接云計算虛擬計算單元管理系統(tǒng),此管理系統(tǒng)維護包括應(yīng)用服務(wù)器、數(shù)據(jù)服務(wù)器、云測試客戶端所在的虛擬鏡像,作為創(chuàng)建資源節(jié)點的模板,當(dāng)彈性測試部署環(huán)境或測試客戶端需要增加節(jié)點的時候,從鏡像生成虛擬計算單元(通常為操作系統(tǒng)級別的虛擬機),并返回虛擬計算單元索引給彈性測試環(huán)境,彈性測試環(huán)境通過調(diào)用這些虛擬計算單元的接口(如應(yīng)用服務(wù)器的部署接口和配置接口),將它們加入到測試環(huán)境中。由云的資源彈性帶來測試環(huán)境的性能彈性。在本方案中,云資源接口均利用目前主流的IaaS(Infrastructure as a Service,設(shè)施即服務(wù))系統(tǒng)實現(xiàn)。
[0068]本發(fā)明主要由兩個基于云資源的子系統(tǒng)構(gòu)成,下面分別介紹它們的體系結(jié)構(gòu)。
[0069]如圖2,在彈性部署環(huán)境中,在測試行為發(fā)生時,實施以下流程:
[0070]I)用戶將待部署的Web應(yīng)用提交(或同步)到部署接入點,自動部署器驗證Web應(yīng)用的配置文件和依賴包,驗證項目的合法性,若通過驗證,則根據(jù)用戶設(shè)定的部署環(huán)境需求,請求部署資源。例如當(dāng)用戶提交一個Java Web應(yīng)用時,提交的war包通過文件接口傳遞給部署接入點,自動部署器驗證war包的合法性和web.xml中的配置情況,然后請求Java應(yīng)用服務(wù)器。
[0071]2)請求的資源主要包括應(yīng)用服務(wù)器節(jié)點和數(shù)據(jù)服務(wù)器節(jié)點,前者主要負(fù)責(zé)接受測試客戶端的請求、做處理并返回響應(yīng);后者主要負(fù)責(zé)提供彈性的數(shù)據(jù)庫服務(wù)。資源請求管理器負(fù)責(zé)創(chuàng)建這兩類節(jié)點。利用為用戶的Java Web應(yīng)用提供tomcat服務(wù)器和mysql數(shù)據(jù)連接。
[0072]3)應(yīng)用服務(wù)器節(jié)點是運行在虛擬計算單元上的應(yīng)用服務(wù)器,例如Tomcat,JBoss等。這些應(yīng)用服務(wù)器通過Load Balancer (比如Apache Httpd)組成服務(wù)器集群,并實現(xiàn)負(fù)載均衡。應(yīng)用服務(wù)器節(jié)點集群訪問數(shù)據(jù)節(jié)點時,需要保證同步性,由同步機制來實現(xiàn)。
[0073]4)節(jié)點都利用云資源接口來獲得虛擬計算單元,例如當(dāng)測試客戶端請求超出部署環(huán)境能力時,資源監(jiān)控器和負(fù)載均衡器報告目前節(jié)點滿載,資源調(diào)度器決定創(chuàng)建新的節(jié)點來滿足客戶端請求,于是調(diào)用云資源接口(例如桉樹或者Amazon EC2的創(chuàng)建虛擬機接口),并將包含節(jié)點的鏡像文件作為模板,創(chuàng)建完成之后加入節(jié)點集群。
[0074]5)訪問地址生成器創(chuàng)建與彈性測試客戶端之間的接口,例如當(dāng)一個war包部署完成之后,創(chuàng)建臨時訪問地址,返回給用戶及彈性測試客戶端,以便發(fā)起測試。
[0075]6)統(tǒng)計控制中心調(diào)用資源監(jiān)控器和負(fù)載均衡器的接口,報告在測試過程中的資源消耗,主要是節(jié)點的數(shù)量、利用率和請求/響應(yīng)數(shù)量,例如針對Java Web應(yīng)用,調(diào)用JavaMelody組件提供統(tǒng)計功能。
[0076]7)容錯與遷移在節(jié)點失效的時候發(fā)生,例如當(dāng)一個包含tomcat節(jié)點的虛擬機失去響應(yīng)的時候,將Tomcat節(jié)點遷移到另一臺新的虛擬機,并注冊到tomcat節(jié)點集群中。
[0077]如圖3,在彈性測試客戶端中,在測試行為發(fā)生時,實施以下流程:
[0078]I)用戶在本地錄制測試腳本,測試腳本的錄制可以使用自動錄制工具或手動編寫,錄制完成的腳本以通用格式(通常為XML格式)保存。
[0079]2)彈性測試客戶端提供腳本接收中心,接收用戶在本地錄制的測試腳本。接收中心的接收方式包括Web界面、Web服務(wù)接口和文件訪問接口。
[0080]3)待腳本接收中心完成測試腳本接收之后,交由腳本驗證器對腳本的內(nèi)容進行三方面的驗證:第一,驗證腳本語法是否正確,例如是否為合法的XML格式;第二,驗證腳本的語義是否正確,例如是否符合格式要求的DTD和XML Schema描述;第三,驗證腳本的測試內(nèi)容是否受到支持,例如瀏覽器版本要求等。如果測試腳本通過驗證器驗證,則返回用戶“通過”消息,并使得此腳本在測試管理中心可見,由用戶設(shè)定測試任務(wù);如果測試腳本無法通過驗證器驗證,則返回錯誤信息,提示用戶進行修正。
[0081]4)當(dāng)測試腳本通過腳本驗證器驗證之后,此腳本即在測試管理中心可見,測試管理中心是用戶對其測試任務(wù)的管理界面,用于設(shè)定測試任務(wù)細(xì)節(jié),用戶可以設(shè)定的細(xì)節(jié)包括:測試的開始時間、完成測試并獲得報告的期望時間、測試的并發(fā)數(shù)、每個測試的性能要求、報表內(nèi)容設(shè)定等。用戶在測試管理中心完成設(shè)置之后,測試腳本即交給計劃任務(wù)中心進入測試隊列。
[0082]5)計劃任務(wù)中心負(fù)責(zé)根據(jù)系統(tǒng)目前的資源情況和測試任務(wù)請求分配測試工作。用戶指派的測試腳本將進入計劃任務(wù)中心的測試隊列中,按照資源需求和完成測試時間信息排序,并交由任務(wù)中心調(diào)度,任務(wù)中心與彈性測試單元交互,獲得當(dāng)前的資源空閑情況,從測試隊列中選擇合適的腳本進行測試任務(wù)部署和執(zhí)行。
[0083]6)彈性測試單元與云資源接口交互,當(dāng)資源無法滿足測試任務(wù)要求時,向云資源接口請求獲取虛擬計算單元,云資源接口生成包含執(zhí)行測試任務(wù)的虛擬機并返回給彈性測試單元,加入測試集群,完成測試要求。
[0084]7)在每個測試單元中,都包含測試單元監(jiān)控模塊,監(jiān)控測試單元的資源使用率,當(dāng)資源使用率超過限制時,將請求新的測試單元加入測試集群。
[0085]8)彈性測試單元的測試目標(biāo)在彈性部署環(huán)境中,彈性測試單元通過部署環(huán)境接口訪問彈性部署環(huán)境中的目標(biāo)Web應(yīng)用。
[0086]9)測試過程中發(fā)生的錯誤與異常會被捕捉,因此中斷的測試任務(wù)會交由計劃任務(wù)中心,并重新加入測試隊列。
[0087]10)測試工作完成之后,測試報告生成中心將把測試情況生成報表,并通知用戶測試過程完成。
[0088]在彈性部署環(huán)境和彈性測試客戶端中都通過云資源接口獲取動態(tài)的云計算資源,在實際應(yīng)用過程中,為了保證云計算資源的快速可用,首先在云計算環(huán)境中創(chuàng)建一組分別為彈性測試客戶端和彈性部署環(huán)境定制的虛擬計算單元(如裝載了特定應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器和測試執(zhí)行工具的虛擬機)作為云資源池,當(dāng)發(fā)生云資源創(chuàng)建請求時,從云資源池中分配空閑計算單元,釋放云資源時,也將虛擬計算單元釋放到云資源池中。
[0089]盡管為說明目的公開了本發(fā)明的具體實施和附圖,其目的在于幫助理解本發(fā)明的內(nèi)容并據(jù)以實施,但是本領(lǐng)域的技術(shù)人員可以理解:在不脫離本發(fā)明及所附的權(quán)利要求的精神和范圍內(nèi),各種替換、變化和修改都是可能的。因此,本發(fā)明不應(yīng)局限于最佳實踐例和附圖所公開的內(nèi)容,本發(fā)明要求保護的范圍以權(quán)利要求書界定的范圍為準(zhǔn)。
【權(quán)利要求】
1.一種基于云計算環(huán)境的分布式Web應(yīng)用測試方法,其特征在于,所述方法包括分別提供彈性的測試部署環(huán)境和測試客戶端,部署環(huán)境和測試客戶端均通過云資源接口與云計算環(huán)境連接,向云計算環(huán)境動態(tài)請求計算單元,并將生成的計算單元加入到測試部署環(huán)境和測試客戶端中;
2.如權(quán)利要求1所述的彈性測試部署環(huán)境,其特征在于,提供了供測試用Web應(yīng)用服務(wù)器部署環(huán)境,部署環(huán)境的容量根據(jù)測試要求動態(tài)調(diào)整,動態(tài)的計算能力由云資源接口訪問云計算環(huán)境,生成供應(yīng)用服務(wù)器和數(shù)據(jù)服務(wù)器部署的虛擬計算單元作為部署節(jié)點;
3.如權(quán)利要求1所述的彈性測試客戶端,其特征在于,提供了供測試用的Web應(yīng)用測試任務(wù)執(zhí)行環(huán)境,執(zhí)行環(huán)境的并發(fā)數(shù)根據(jù)測試要求動態(tài)調(diào)整,動態(tài)的計算能力由云資源接口訪問云計算環(huán)境,生成供測試執(zhí)行工具部署的虛擬計算單元作為測試客戶端節(jié)點;
4.如權(quán)利要求2所述的彈性測試部署環(huán)境,其特征在于,提供測試目標(biāo)的Web應(yīng)用的部署接入點和自動部署機制,接入點的方式包括文件傳輸和版本控制工具,自動部署機制根據(jù)部署描述在彈性測試環(huán)境中部署Web應(yīng)用,并自動實現(xiàn)負(fù)載均衡,生成訪問地址;
5.如權(quán)利要求2所述的彈性測試部署環(huán)境,其特征在于,將應(yīng)用服務(wù)器和數(shù)據(jù)服務(wù)器組成動態(tài)調(diào)整的測試服務(wù)集群,由測試要求和執(zhí)行情況確定應(yīng)用服務(wù)器節(jié)點和數(shù)據(jù)服務(wù)器節(jié)點所需要的數(shù)量,并動態(tài)分配節(jié)點,加入測試服務(wù)集群;
6.如權(quán)利要求2所述的彈性測試部署環(huán)境,其特征在于,在每個應(yīng)用服務(wù)節(jié)點和數(shù)據(jù)服務(wù)節(jié)點中部署資源監(jiān)控器,獲取資源消耗情況和處理請求/響應(yīng)的情況,依次作為依據(jù),實現(xiàn)資源規(guī)劃調(diào)度算法;
7.如權(quán)利要求3所述的彈性測試客戶端,其特征在于,提供測試腳本接收中心和腳本驗證器作為用戶錄制測試腳本與環(huán)境的接口,經(jīng)過驗證的腳本可由用戶設(shè)定測試要求,包括偏好測試時間、測試單元個數(shù);
8.如權(quán)利要求3所述的彈性測試客戶端,其特征在于,提供了測試腳本計劃任務(wù)中心,維護測試任務(wù)隊列,分配測試執(zhí)行單元執(zhí)行測試工作,并在資源限制情況下,規(guī)劃調(diào)度測試任務(wù)執(zhí)行;
9.如權(quán)利要求3所述的彈性測試客戶端,其特征在于,測試單元中包含資源監(jiān)控器,并在資源不足的情況下,請求新的測試節(jié)點加入測試集群,并將資源使用情況加入測試報表結(jié)果;
10.如權(quán)利要求1所述的分布式Web應(yīng)用測試方法,其特征在于,彈性測試客戶端根據(jù)測試并發(fā)要求訪問測試部署環(huán)境,通過部署環(huán)境動態(tài)資源規(guī)劃,計算出所需的部署資源,作為實際部署的依據(jù)。
【文檔編號】H04L12/26GK103581247SQ201210268719
【公開日】2014年2月12日 申請日期:2012年7月30日 優(yōu)先權(quán)日:2012年7月30日
【發(fā)明者】吳超 申請人:杭州洱??萍加邢薰?br>