專利名稱:一種測(cè)試服務(wù)器性能的框架系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于測(cè)試服務(wù)器性能的框架系統(tǒng)及應(yīng)用該框架系統(tǒng)進(jìn)行服務(wù)器性能測(cè)試的方法,尤其涉及一種對(duì)具有混合工作負(fù)載的服務(wù)器性能進(jìn)行測(cè)試的框架系統(tǒng)及方法。
現(xiàn)有技術(shù)中一種典型的基準(zhǔn)測(cè)試系統(tǒng)如
圖1所示,該測(cè)試系統(tǒng)包括一組用于產(chǎn)生工作負(fù)載請(qǐng)求的生成器,一個(gè)協(xié)調(diào)測(cè)試工具的測(cè)試工作的管理器及作為測(cè)試對(duì)象的服務(wù)器,在這種測(cè)試環(huán)境下,僅能測(cè)試單一的工作負(fù)載,或者僅能測(cè)試一個(gè)具體的應(yīng)用系統(tǒng)的一個(gè)具體的工作負(fù)載,而不能測(cè)試混合工作負(fù)載。
美國(guó)專利US5,790,425公開(kāi)了一種在客戶機(jī)服務(wù)器環(huán)境下對(duì)服務(wù)器進(jìn)行測(cè)試的方法,該方法可以在具有不同協(xié)議的客戶系統(tǒng)中實(shí)現(xiàn),并且可以測(cè)試服務(wù)器對(duì)多種工作負(fù)載請(qǐng)求的響應(yīng)。但是該對(duì)比文件未教導(dǎo)如何將第三方的測(cè)試要求加入其測(cè)試方法中,以根據(jù)第三方的測(cè)試目的進(jìn)行測(cè)試。
發(fā)明目的發(fā)明目的在于提供一種對(duì)具有混合工作負(fù)載的服務(wù)器性能進(jìn)行測(cè)試的框架系統(tǒng)及方法,通過(guò)采用本發(fā)明的框架進(jìn)行測(cè)試,可以將第三方的測(cè)試要求靈活地加進(jìn)來(lái),并根據(jù)第三方的測(cè)試要求測(cè)試服務(wù)器的能力。技術(shù)方案為實(shí)現(xiàn)上述目的,本發(fā)明提供一種測(cè)試具有混合工作負(fù)載的服務(wù)器的方法,其中作為代理機(jī)及控制設(shè)備的多個(gè)客戶機(jī)通過(guò)網(wǎng)絡(luò)與被測(cè)試的服務(wù)器相連,包括如下步驟,第三方開(kāi)發(fā)與其一種或多種工作負(fù)載類型對(duì)應(yīng)的一個(gè)或多個(gè)工作負(fù)載類型配置模塊,以實(shí)現(xiàn)一個(gè)工作負(fù)載類型配置模塊接口;第三方開(kāi)發(fā)與其一種或多種工作負(fù)載類型對(duì)應(yīng)的一個(gè)或多個(gè)工作負(fù)載引擎,以實(shí)現(xiàn)一個(gè)工作負(fù)載接口;控制設(shè)備通過(guò)所述工作負(fù)載類型配置模塊接口使用所述工作負(fù)載類型配置模塊進(jìn)行配置,將配置過(guò)程中收集的信息發(fā)送到相應(yīng)的代理機(jī);所述代理機(jī)通過(guò)所述工作負(fù)載接口控制相應(yīng)的工作負(fù)載引擎,使所述工作負(fù)載引擎根據(jù)配置過(guò)程中收集的信息生成工作負(fù)載請(qǐng)求,并將請(qǐng)求發(fā)送到服務(wù)器;所述控制設(shè)備從各代理機(jī)收集服務(wù)器的響應(yīng)信息,并生成測(cè)試結(jié)果。
本發(fā)明還提供一種測(cè)試具有混合工作負(fù)載的服務(wù)器的測(cè)試框架系統(tǒng),其中作為代理機(jī)及控制設(shè)備的多個(gè)客戶機(jī)通過(guò)網(wǎng)絡(luò)與被測(cè)試的服務(wù)器相連,其特征在于在控制設(shè)備一側(cè)具有控制器,用于協(xié)調(diào)參加測(cè)試的各部件;工作負(fù)載類型配置模塊接口,使第三方開(kāi)發(fā)的一個(gè)或多個(gè)工作負(fù)載類型配置模塊能夠加入到該框架系統(tǒng)中;所述工作負(fù)載類型配置應(yīng)用,使第三方描述自己具體的測(cè)試需求,在代理機(jī)一側(cè)具有代理適配器,用于從控制設(shè)備接收命令和所述配置信息,并把測(cè)試結(jié)果返回給控制器;工作負(fù)載引擎接口,使第三方開(kāi)發(fā)的一個(gè)或多個(gè)工作負(fù)載引擎能夠加入到該框架系統(tǒng)中;所述工作負(fù)載引擎,用于接收來(lái)自于代理適配器的命令和配置信息,生成工作負(fù)載請(qǐng)求,將該請(qǐng)求向服務(wù)器發(fā)送,并從服務(wù)器接收響應(yīng)信息。技術(shù)效果本發(fā)明的框架系統(tǒng)可以靈活地將第三方新的工作負(fù)載加入測(cè)試框架之中,而不管這種工作負(fù)載是一種標(biāo)準(zhǔn)的基準(zhǔn)測(cè)試工作負(fù)載或是專門的應(yīng)用工作負(fù)載,從而可以對(duì)具有混合工作負(fù)載的服務(wù)器性能進(jìn)行測(cè)試。
通過(guò)以下結(jié)合附圖對(duì)本發(fā)明所進(jìn)行的詳細(xì)描述,本發(fā)明的優(yōu)點(diǎn)將更加清楚。
圖1是現(xiàn)有技術(shù)中的測(cè)試系統(tǒng)。
圖2是根據(jù)本發(fā)明的測(cè)試框架系統(tǒng)的概略方框圖。
圖3是采用本發(fā)明的測(cè)試框架系統(tǒng)進(jìn)行服務(wù)器性能測(cè)試的方法流程圖。
圖4是本發(fā)明的一個(gè)實(shí)施例的測(cè)試框架系統(tǒng)的方框圖。
本發(fā)明的詳細(xì)描述本發(fā)明用于測(cè)試服務(wù)器的框架系統(tǒng)如圖2所示。
其中控制設(shè)備100是用于協(xié)調(diào)框架系統(tǒng)中其它部件操作的設(shè)備。控制器101用于幫助第三方將自已的測(cè)試需求加進(jìn)框架系統(tǒng),并負(fù)責(zé)與后述的代理機(jī)進(jìn)行通信。工作負(fù)載類型配置模塊接口102定義了一組控制器101可以調(diào)用的功能,這些功能由要使用本發(fā)明的框架系統(tǒng)進(jìn)行測(cè)試的第三方來(lái)實(shí)現(xiàn),這樣第三方就可以將自己的測(cè)試工作負(fù)載類型靈活地加入框架系統(tǒng)。在本發(fā)明的一個(gè)實(shí)施例中,該接口是用Java語(yǔ)言實(shí)現(xiàn)的。對(duì)于本領(lǐng)域的技術(shù)人員來(lái)講,也可以用其它任何高級(jí)語(yǔ)言實(shí)現(xiàn)該接口功能。工作負(fù)載類型配置模塊103是第三方自己編制的,用于配置具體的測(cè)試需求,并且該工作負(fù)載類型配置模塊103通過(guò)實(shí)現(xiàn)工作負(fù)載配置模塊接口102中所定義的所有功能,來(lái)實(shí)現(xiàn)與控制器101之間的通信。工作負(fù)載類型庫(kù)104用于存儲(chǔ)第三方所定義的所有工作負(fù)載類型,及工作負(fù)載類型配置模塊103在進(jìn)行工作負(fù)載配置時(shí)所收集的信息。工作負(fù)載類型配置模塊103可以對(duì)該工作負(fù)載類型庫(kù)104中可用的工作負(fù)載類型下的工作負(fù)載進(jìn)行配置,并將配置工作負(fù)載類型時(shí)所收集的信息發(fā)送給控制器101。
代理機(jī)200,代理機(jī)300…代理機(jī)400由分布于網(wǎng)絡(luò)中的客戶機(jī)實(shí)現(xiàn),用于模擬測(cè)試過(guò)程中向待測(cè)服務(wù)器500發(fā)出工作負(fù)載請(qǐng)求的用戶。代理適配器201,301…401分布在各代理機(jī)上,用于從控制器接收命令并控制后述的工作負(fù)載引擎203,303…403生成測(cè)試服務(wù)器的工作負(fù)載請(qǐng)求。工作負(fù)載接口202、302…402定義了一組代理適配器201,301…401可以調(diào)用的功能,這些功能由要使用本發(fā)明的框架系統(tǒng)進(jìn)行測(cè)試的第三方來(lái)實(shí)施,這些功能定義了如何設(shè)置、控制后述的工作負(fù)載引擎并報(bào)告測(cè)試結(jié)果等功能。在本發(fā)明的一個(gè)實(shí)施例中,該接口是用Java語(yǔ)言來(lái)實(shí)現(xiàn)的。但是對(duì)于本領(lǐng)域的技術(shù)人員來(lái)講,當(dāng)然也可以用其它任何與平臺(tái)無(wú)關(guān)的高級(jí)語(yǔ)言來(lái)實(shí)現(xiàn)該接口功能。工作負(fù)載引擎203,303…403是第三方自己編制的,它能夠根據(jù)第三方所要測(cè)試的工作負(fù)載類型及與該工作負(fù)載類型下的工作負(fù)載具體配置生成工作負(fù)載請(qǐng)求。并且該工作負(fù)載引擎203,303…403同樣也應(yīng)實(shí)現(xiàn)工作負(fù)載接口202,302…402中所定義的所有功能,從而使工作負(fù)載引擎203,303…403與代理適配器201,301…401進(jìn)行通信。
以上描述了根據(jù)本發(fā)明所實(shí)現(xiàn)的測(cè)試框架系統(tǒng),下面將根據(jù)圖3描述使用根據(jù)本發(fā)明的框架系統(tǒng)測(cè)試服務(wù)器對(duì)混合工作負(fù)載請(qǐng)求響應(yīng)的能力的服務(wù)器的方法。
首先在步驟S1,測(cè)試者(第三方)要在控制設(shè)備100和代理機(jī)200,300…400及服務(wù)器上設(shè)置適當(dāng)?shù)能浖?,這些軟件應(yīng)當(dāng)實(shí)現(xiàn)如下功能即控制器101,代理適配器201、301…401的功能。另外,測(cè)試者也應(yīng)將欲參加測(cè)試的工作負(fù)載的類型信息及在產(chǎn)生工作負(fù)載請(qǐng)求時(shí)可能要用到的相關(guān)信息分別存儲(chǔ)到相應(yīng)的控制設(shè)備的工作負(fù)載類型庫(kù)104,代理機(jī)的存儲(chǔ)器(未示出)及服務(wù)器500上。
在步驟S2,測(cè)試者要根據(jù)自己的測(cè)試需求編制與參加測(cè)試的各工作負(fù)載類型相對(duì)應(yīng)的工作負(fù)載類型配置模塊103,這些工作負(fù)載類型配置模塊103應(yīng)當(dāng)實(shí)現(xiàn)工作負(fù)載類型配置模塊接口102中定義的功能以與控制器101進(jìn)行通信。
在步驟S3,測(cè)試者編制與參加測(cè)試的各工作負(fù)載類型相對(duì)應(yīng)的工作負(fù)載引擎203,303…403,該工作負(fù)載引擎通過(guò)使用工作負(fù)載類型及該類型下工作負(fù)載配置信息生成請(qǐng)求。同樣,這些工作負(fù)載引擎203,303…403應(yīng)當(dāng)實(shí)現(xiàn)工作負(fù)載接口202,302…402中定義的功能以與代理適配器201、301…401進(jìn)行通信。另外,在圖2中為了說(shuō)明的方便將工作負(fù)載接口用202,302,402標(biāo)記,但實(shí)際上它們定義了相同的一組功能。
在步驟S4,控制器101通過(guò)工作負(fù)載類型配置模塊接口102使用一個(gè)相應(yīng)的工作負(fù)載類型配置模塊103對(duì)工作負(fù)載進(jìn)行配置,并收集配置過(guò)程中收集的信息。測(cè)試者可根據(jù)自己的需求重復(fù)執(zhí)行步驟S4對(duì)多種工作負(fù)載類型進(jìn)行配置。
在步驟S5,控制器101將配置過(guò)程中收集的信息分別發(fā)送到相應(yīng)的代理機(jī)適配器201,301…401上。
在步驟S6,各代理機(jī)適配器201,301…401分別通過(guò)工作負(fù)載接口202,302…402控制各工作負(fù)載引擎203,303…403生成工作負(fù)載請(qǐng)求,并將請(qǐng)求發(fā)送到服務(wù)器500。
在步驟S7,控制器101從代理機(jī)201,301…401動(dòng)態(tài)地采集服務(wù)器500的響應(yīng)信息并生成測(cè)試結(jié)果。
另外,雖然在上面是以一個(gè)代理機(jī)上有一個(gè)工作負(fù)載引擎來(lái)描述的,但是對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),當(dāng)然也可以在一個(gè)代理機(jī)上設(shè)置多個(gè)工作負(fù)載引擎。
從以上的描述可知,本發(fā)明的框架系統(tǒng)實(shí)現(xiàn)了靈活地測(cè)試具有混合工作負(fù)載下的服務(wù)器的功能。而這種靈活性主要體現(xiàn)在本框架系統(tǒng)使用工作負(fù)載類型配置模塊接口和工作負(fù)載接口,從而使得第三方可以隨時(shí)將自己的工作負(fù)載加入測(cè)試任務(wù)中。
下面將根據(jù)一個(gè)具體的實(shí)施例來(lái)描述第三方如何采用本發(fā)明的測(cè)試框架系統(tǒng)進(jìn)行測(cè)試。
現(xiàn)在假設(shè)要測(cè)試一個(gè)電子商務(wù)網(wǎng)站對(duì)混合工作負(fù)載請(qǐng)求的響應(yīng)能力。
一般來(lái)講,一個(gè)電子商務(wù)站點(diǎn)(服務(wù)器)可能要承載許多工作負(fù)載,有些工作負(fù)載是由偶然的瀏覽所產(chǎn)生的,而另一些工作負(fù)載則是由進(jìn)行商業(yè)交易的用戶產(chǎn)生的,并且在實(shí)際情況中,前者出現(xiàn)的機(jī)會(huì)多于后者,即僅僅到電子商務(wù)站點(diǎn)上進(jìn)行瀏覽的用戶更多一些。如果站點(diǎn)對(duì)這種情況沒(méi)有適當(dāng)?shù)目刂?,則偶然的瀏覽可能會(huì)降低進(jìn)行商業(yè)交易這種工作負(fù)載的性能。因此電子商務(wù)站點(diǎn)的測(cè)試者(第三方)要模擬實(shí)際的環(huán)境測(cè)試服務(wù)器和應(yīng)用以了解在不同的因特網(wǎng)接入方式下服務(wù)器是如何響應(yīng)的,從而有目的地在以后進(jìn)行控制。
在應(yīng)用本發(fā)明的框架系統(tǒng)進(jìn)行測(cè)試時(shí),首先,測(cè)試者在測(cè)試前要作如下工作1.搭建起進(jìn)行測(cè)試所需的硬件環(huán)境。如圖4所示,這里假設(shè)測(cè)試者提供了一臺(tái)可以運(yùn)行混合工作負(fù)載的服務(wù)器6000,五臺(tái)PC機(jī)即PC1-PC5,其中一臺(tái)PC機(jī)即PC5作為控制設(shè)備1000而另外四臺(tái)PC機(jī)即PC1-PC4作為代理機(jī),它們之間通過(guò)網(wǎng)絡(luò)連接。
2.在控制設(shè)備1000(PC5)上加載實(shí)現(xiàn)控制器1001功能的軟件,在代理機(jī)2000-5000(PC1-PC4)上加載實(shí)現(xiàn)代理適配器2001-5001功能的軟件。
3.測(cè)試者確定測(cè)試目的,在本實(shí)施例中,假設(shè)要測(cè)試同時(shí)運(yùn)行了兩種不同類型的工作負(fù)載的服務(wù)器,一種工作負(fù)載類型是HTTP,另一種工作負(fù)載類型是websurf。并且假設(shè)PC1和PC2用于模擬產(chǎn)生HTTP類型的工作負(fù)載請(qǐng)求,PC2,PC3和PC4用于模擬產(chǎn)生websurf類型的工作負(fù)載請(qǐng)求。
4.測(cè)試者要將工作負(fù)載類型為HTTP下的工作負(fù)載的相關(guān)信息(例如要產(chǎn)生這種類型下的工作負(fù)載所需的變量,及變量的實(shí)例值)存放于控制設(shè)備1000的工作負(fù)載類型庫(kù)1005中。
5.按照與上述4相同的方法將工作負(fù)載類型為websurf下的工作負(fù)載的相關(guān)信息也存放于控制設(shè)備1000的工作負(fù)載類型庫(kù)1005中。
6.測(cè)試者開(kāi)發(fā)與工作負(fù)載類型HTTP所對(duì)應(yīng)的HTTP工作負(fù)載類型配置模塊1003,該模塊能夠?qū)崿F(xiàn)本發(fā)明的測(cè)試框架系統(tǒng)的工作負(fù)載類型配置模塊接口1002,從而控制器1001可以通過(guò)該工作負(fù)載類型配置接口1002調(diào)用該HTTP工作負(fù)載類型配置模塊1003進(jìn)行工作負(fù)載配置。測(cè)試者可以根據(jù)HTTP類型及相關(guān)信息開(kāi)發(fā)生成相應(yīng)的工作負(fù)載請(qǐng)求的HTTP工作負(fù)載引擎2003、3003(這兩個(gè)工作引擎是相同的),該工作負(fù)載引擎2003、3003能夠?qū)崿F(xiàn)本發(fā)明測(cè)試框架系統(tǒng)中的工作負(fù)載接口2002、3002,從而控制器1001可以通過(guò)代理適配器2001、3001控制HTTP工作負(fù)載引擎2003、3003生成HTTP工作負(fù)載請(qǐng)求。測(cè)試者然后將HTTP工作負(fù)載類型配置模塊1003加載到控制設(shè)備1000上,將HTTP工作負(fù)載引擎2003、3003加載到PC1和PC2上。這樣測(cè)試者通過(guò)實(shí)現(xiàn)工作負(fù)載類型配置模塊接口1002及工作負(fù)載接口2002、3002就實(shí)現(xiàn)了將自己的HTTP工作負(fù)載加入本發(fā)明的測(cè)試框架系統(tǒng)中。
7.按照與6相同的操作,測(cè)試者開(kāi)發(fā)與工作負(fù)載類型websurf所對(duì)應(yīng)的websurf工作負(fù)載類型配置模塊1004,該模塊能夠?qū)崿F(xiàn)本發(fā)明的測(cè)試框架系統(tǒng)的工作負(fù)載類型配置模塊接口1002,從而控制器1001可以通過(guò)該工作負(fù)載類型配置接口1002調(diào)用該websurf工作負(fù)載類型配置模塊1004進(jìn)行工作負(fù)載配置。測(cè)試者可以根據(jù)websurf類型及相關(guān)信息開(kāi)發(fā)生成相應(yīng)的工作負(fù)載請(qǐng)求的websurf工作負(fù)載引擎3004、4003、5003(這三個(gè)工作引擎是相同的),該工作負(fù)載引擎3004、4003、5003能夠?qū)崿F(xiàn)本發(fā)明測(cè)試框架系統(tǒng)中的工作負(fù)載接口3002、4002和5002,從而控制器1001可以通過(guò)代理適配器3001、4001和5001控制websurf工作負(fù)載引擎3004、4003、5003生成websurf工作負(fù)載請(qǐng)求。測(cè)試者然后將websurf工作負(fù)載類型配置模塊1004加載到控制設(shè)備1000上,將websurf工作負(fù)載引擎3004、4003、5003加載到PC2、PC3和PC4上。這樣測(cè)試者通過(guò)實(shí)現(xiàn)工作負(fù)載類型配置模塊接口1002及工作負(fù)載接口3002、4002HE 5002將與websurf工作負(fù)載類型相對(duì)應(yīng)的websurf工作負(fù)載類型配置模塊1004和websurf工作負(fù)載引擎3004、4003、5003加入本發(fā)明的測(cè)試框架系統(tǒng)中。
另外,為了更清楚地理解本發(fā)明的兩個(gè)接口,現(xiàn)給出利用Java語(yǔ)言對(duì)本發(fā)明的框架系統(tǒng)的接口進(jìn)行的示例定義。
工作負(fù)載類型配置接口的定義public interface iConfig{//*控制器將一個(gè)工作負(fù)載類型配置文件名傳送給工作負(fù)載類型配置模塊*//public void setConfigFileName(String strConfigFileName);
//*配置工作負(fù)載類型*//public Boolean show(frame parent)throws Exception;//*收集配置信息*//public string[]getAIIFilesNeedToBeSend();}工作負(fù)載引擎接口的定義public interface iWorkload{//*可以根據(jù)參數(shù)“configFileName”所表示的配置文件增加準(zhǔn)備測(cè)試的一些初始化代碼*//public void initWorkload(String configFileName)throws Exception;//*開(kāi)始測(cè)試*//public void start()throws Exception;//*結(jié)束測(cè)試*//public void stop()throws Exception;//*設(shè)置代理機(jī)上所模擬的用戶數(shù),及產(chǎn)生工作負(fù)載請(qǐng)求的間隔。*//public void setproperty(int nClientNumber,int nTime)throws Exception;//*改變所模擬的用戶數(shù)*//public void changeClientNumber(int newClientNumber)throws Exception;//*動(dòng)態(tài)地報(bào)告對(duì)服務(wù)器的響應(yīng)的統(tǒng)計(jì)信息,這些信息可以包括但不限于如下信息即,測(cè)試時(shí)間內(nèi)總的吞吐量、總響應(yīng)時(shí)間、總的連接量,一種錯(cuò)誤類型下總的錯(cuò)誤數(shù),從測(cè)試開(kāi)始時(shí)刻到當(dāng)前時(shí)間的測(cè)試期間等*//public CRetumValue getStandardValue()throws Exception;//*結(jié)束測(cè)試*//public boolean testFinish()throws Exception;}對(duì)于本領(lǐng)域的技術(shù)人員來(lái)講,本發(fā)明的測(cè)試框架系統(tǒng)對(duì)于接口的定義是不限于上述例子限定的,接口中可以加入新的功能。
至此,根據(jù)本發(fā)明測(cè)試具有混合工作負(fù)載的框架系統(tǒng)已經(jīng)構(gòu)建完畢,下面就可以使用該框架系統(tǒng)進(jìn)行測(cè)試。
本實(shí)施例中搭建好的框架系統(tǒng)如圖4所示。關(guān)于圖4中各塊之間的關(guān)系及各塊所完成的功能將在下面描述。
首先,測(cè)試者啟動(dòng)控制器1001以增加新的待測(cè)的工作負(fù)載類型,控制器1001從一個(gè)可用的工作負(fù)載列表(未示出)中選擇一種工作負(fù)載類型例如HTTP,其中該工作負(fù)載列表可以由控制器1001根據(jù)工作負(fù)載類型庫(kù)1004中所存儲(chǔ)的可用的工作負(fù)載類型生成,也可以由測(cè)試者制作,關(guān)于該列表的實(shí)現(xiàn),屬于本領(lǐng)域技術(shù)人員所公知的內(nèi)容,因此在此省略其說(shuō)明。
然后控制器1001通過(guò)工作負(fù)載類型配置模塊接口1002調(diào)用與HTTP工作負(fù)載類型對(duì)應(yīng)的HTTP工作負(fù)載類型配置模塊1003,該HTTP工作負(fù)載類型配置模塊1003對(duì)工作負(fù)載類型HTTP下的工作負(fù)載進(jìn)行配置,例如收集工作負(fù)載引擎2003、3003生成工作負(fù)載請(qǐng)求時(shí)所需的相關(guān)信息,并將其傳輸給控制器1001。另外工作負(fù)載類型配置模塊1003在配置過(guò)程中所收集的相關(guān)信息也可以存放在一個(gè)HTTP工作負(fù)載類型文件中,并將該文件存放到工作負(fù)載類型庫(kù)1005內(nèi),以備控制器1001調(diào)用。另外,該配置好的工作負(fù)載類型HTTP也被添加到一個(gè)工作負(fù)載類型列表中(未示出),該工作負(fù)載類型列表用于存放測(cè)試框架中可用的工作負(fù)載類型。
在配置完HTTP工作負(fù)載類型的工作負(fù)載后,控制器1001按照與配置HTTP類型時(shí)相似的過(guò)程,來(lái)配置websurf工作負(fù)載類型下的工作負(fù)載,并把配置信息傳送給控制器,或/并且把配置信息存入到一個(gè)websurf工作負(fù)載類型文件中,以備控制器1001調(diào)用。另外,該工作負(fù)載類型websurf也被添加到上述工作負(fù)載類型列表中。
接著,控制器1001分別為添加到框架中的各工作負(fù)載類型指定生成該類型下工作負(fù)載請(qǐng)求的代理機(jī)。在本實(shí)施例中,即是為HTTP類型下的工作負(fù)載配置代理機(jī)PC1及PC2的網(wǎng)絡(luò)地址,為websurf類型下的工作負(fù)載配置代理機(jī)PC2,PC3及PC4的網(wǎng)絡(luò)地址,并/或?qū)⑴渲玫木W(wǎng)絡(luò)地址添加到一個(gè)機(jī)器列表(未示出)中,該機(jī)器列表用于存放可以生成某種類型下的工作負(fù)載請(qǐng)求的代理機(jī)網(wǎng)絡(luò)地址;同時(shí),控制器1001還能為各代理機(jī)指定所模擬的用戶數(shù)目,這樣一臺(tái)代理機(jī)可以模擬多個(gè)用戶發(fā)出多個(gè)同一類型的工作負(fù)載請(qǐng)求。
接著,控制器1001通過(guò)向PC1、PC2、PC3及PC4發(fā)出測(cè)試開(kāi)始指令,將HTTP工作負(fù)載類型下的工作負(fù)載配置信息及PC1 2000所模擬的用戶數(shù)目通過(guò)網(wǎng)絡(luò)發(fā)送到PC1的代理適配器2001;將HTTP工作負(fù)載類型下的工作負(fù)載配置信息及PC2所模擬的用戶數(shù)目通過(guò)網(wǎng)絡(luò)發(fā)送到PC2的代理適配器3001;將websurf工作負(fù)載類型下的工作負(fù)載配置信息及PC2所模擬的用戶數(shù)目通過(guò)網(wǎng)絡(luò)發(fā)送到PC2的代理適配器3001;將websurf工作負(fù)載類型下的工作負(fù)載配置信息及PC3所模擬的用戶數(shù)目通過(guò)網(wǎng)絡(luò)發(fā)送到PC3的代理適配器4001;將websurf工作負(fù)載類型下的工作負(fù)載配置信息及PC4所模擬的用戶數(shù)目通過(guò)網(wǎng)絡(luò)發(fā)送到PC4的代理適配器5001。
隨后,PC1上的代理適配器2001將所接收到的工作負(fù)載配置信息及PC1所模擬的用戶數(shù)目通過(guò)HTTP工作負(fù)載接口2002發(fā)送給HTTP工作負(fù)載引擎2003,該引擎于是產(chǎn)生HTTP工作負(fù)載請(qǐng)求,并將請(qǐng)求發(fā)送到服務(wù)器6000,并且從服務(wù)器接收響應(yīng)信息進(jìn)行統(tǒng)計(jì),代理適配器2001然后將HTTP工作負(fù)載引擎2003所統(tǒng)計(jì)的測(cè)試信息發(fā)送回控制器1001。按照同樣的操作,最終控制器1001收集到HTTP工作負(fù)載引擎3003,websurf工作負(fù)載引擎3004,websurf工作負(fù)載引擎4003及websurf工作負(fù)載引擎5003所統(tǒng)計(jì)的測(cè)試信息。
最后,控制器1001根據(jù)所有的測(cè)試信息生成測(cè)試結(jié)果,并將結(jié)果輸出,在本實(shí)施例中,測(cè)試結(jié)果是實(shí)時(shí)地輸出的。
另外,控制器1001還可以通過(guò)向各代理機(jī)發(fā)送停止命令來(lái)結(jié)束測(cè)試。
在控制器1001將配置信息發(fā)送到各代理機(jī)之前,還可以把定義好的測(cè)試環(huán)境信息包括可用的工作負(fù)載類型,可用的機(jī)器列表等存儲(chǔ)到一個(gè)文件中,當(dāng)需要再次在該測(cè)試環(huán)境中進(jìn)行測(cè)試時(shí),直接從該文件中讀取環(huán)境信息即可,而不需重新定義。
此外,在控制設(shè)備中還可以具有一個(gè)工作負(fù)載引擎庫(kù),用于存儲(chǔ)第三方所定義的工作負(fù)載引擎,以備控制器使用。
本發(fā)明已經(jīng)根據(jù)具體的實(shí)施例和附圖進(jìn)行了詳細(xì)描述,但這些描述并非用于限制本發(fā)明。在不偏離本發(fā)明的精神和范圍內(nèi),可以對(duì)其進(jìn)行修改和改進(jìn)。
權(quán)利要求
1.一種測(cè)試具有混合工作負(fù)載的服務(wù)器的方法,其中作為代理機(jī)及控制設(shè)備的多個(gè)客戶機(jī)通過(guò)網(wǎng)絡(luò)與被測(cè)試的服務(wù)器相連,其特征在于包括如下步驟,第三方開(kāi)發(fā)與其一種或多種工作負(fù)載類型對(duì)應(yīng)的一個(gè)或多個(gè)工作負(fù)載類型配置模塊,這些模塊均實(shí)現(xiàn)一個(gè)工作負(fù)載類型配置模塊接口;第三方開(kāi)發(fā)與其一種或多種工作負(fù)載類型對(duì)應(yīng)的一個(gè)或多個(gè)工作負(fù)載引擎,這些引擎均實(shí)現(xiàn)一個(gè)工作負(fù)載接口;控制設(shè)備通過(guò)所述工作負(fù)載類型配置模塊接口使用所述工作負(fù)載類型配置模塊進(jìn)行工作負(fù)載配置,將配置過(guò)程中收集的信息發(fā)送到相應(yīng)的代理機(jī);所述代理機(jī)通過(guò)所述工作負(fù)載接口控制相應(yīng)的工作負(fù)載引擎,使所述工作負(fù)載引擎根據(jù)配置過(guò)程中收集的信息生成工作負(fù)載請(qǐng)求,并將請(qǐng)求發(fā)送到服務(wù)器;所述控制設(shè)備從各代理機(jī)收集服務(wù)器的響應(yīng)信息,并生成測(cè)試結(jié)果。
2.根據(jù)權(quán)利要求1所述的測(cè)試方法,其特征在于所述工作負(fù)載類型配置模塊接口包括使框架系統(tǒng)調(diào)用第三方工作負(fù)載類型配置模塊為不同的測(cè)試目的定義工作負(fù)載類型的功能。
3.根據(jù)權(quán)利要求1所述的測(cè)試方法,其特征在于所述工作負(fù)載接口包括進(jìn)行工作負(fù)載建立,控制及監(jiān)視的功能。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的測(cè)試方法,其特征在于所述一個(gè)或多個(gè)工作負(fù)載類型配置模塊位于控制設(shè)備上,所述一個(gè)或多個(gè)工作負(fù)載引擎被分別設(shè)置到一個(gè)或多個(gè)代理機(jī)上。
5.根據(jù)權(quán)利要求4所述的測(cè)試方法,其特征在于由位于所述控制設(shè)備上的一個(gè)控制器來(lái)實(shí)現(xiàn)該控制設(shè)備所進(jìn)行的配置過(guò)程,并與所述代理機(jī)之間進(jìn)行信息傳送。
6.根據(jù)權(quán)利要求5所述的測(cè)試方法,其特征在于由位于所述代理機(jī)上的一個(gè)適配器對(duì)工作負(fù)載引擎進(jìn)行控制并與控制設(shè)備通信。
7.根據(jù)權(quán)利要求5所述的測(cè)試方法,其特征在于所述控制器進(jìn)行的配置的過(guò)程包括如下步驟,從一個(gè)可用的工作負(fù)載列表中選擇一種工作負(fù)載類型;根據(jù)所選擇的工作負(fù)載類型激活對(duì)應(yīng)的工作負(fù)載類型配置模塊;所述一個(gè)或多個(gè)工作負(fù)載類型配置模塊對(duì)各工作負(fù)載類型進(jìn)行配置,并將配置信息傳輸給控制器;所述控制器分別指定將要生成所述工作負(fù)載類型下的工作負(fù)載請(qǐng)求的一個(gè)或多個(gè)代理機(jī)的地址和每個(gè)代理機(jī)所模擬的客戶數(shù)。
8.根據(jù)權(quán)利要求7所述的測(cè)試方法,其特征在于所述工作負(fù)載類型配置模塊為所選擇的工作負(fù)載類型收集產(chǎn)生工作負(fù)載請(qǐng)求時(shí)所需的相關(guān)信息。
9.根據(jù)權(quán)利要求1-3或8所述的測(cè)試方法,其特征在于所述配置過(guò)程中收集的信息至少包括工作負(fù)載類型及配置信息,和代理機(jī)所模擬的客戶數(shù)。
10.根據(jù)權(quán)利要求6所述的測(cè)試方法,其特征在于代理機(jī)適配器通過(guò)所述工作負(fù)載接口將接收的信息傳輸給工作負(fù)載引擎;工作負(fù)載引擎將接收的服務(wù)器動(dòng)態(tài)響應(yīng)信息發(fā)送回代理機(jī)適配器;
11.根據(jù)權(quán)利要求1-3及10任一項(xiàng)所述的測(cè)試方法,其特征在于進(jìn)一步包括如下步驟,所述控制器通過(guò)向代理機(jī)發(fā)送命令控制測(cè)試工作的開(kāi)始和結(jié)束。
12.一種測(cè)試具有混合工作負(fù)載的服務(wù)器的測(cè)試框架系統(tǒng),其中作為代理機(jī)及控制設(shè)備的多個(gè)客戶機(jī)通過(guò)網(wǎng)絡(luò)與被測(cè)試的服務(wù)器相連,其特征在于在控制設(shè)備一側(cè)具有控制器,用于協(xié)調(diào)參加測(cè)試的各部件;工作負(fù)載類型配置模塊接口,使第三方開(kāi)發(fā)的一個(gè)或多個(gè)工作負(fù)載類型配置模塊能夠加入到該框架系統(tǒng)中;所述工作負(fù)載類型配置模塊,使第三方描述自己具體的測(cè)試需求,在代理機(jī)一側(cè)具有代理適配器,用于從控制設(shè)備接收命令和配置信息,并把服務(wù)器的響應(yīng)信息返回給控制器;工作負(fù)載引擎接口,使第三方開(kāi)發(fā)的一個(gè)或多個(gè)工作負(fù)載引擎能夠加入到該框架系統(tǒng)中;所述工作負(fù)載引擎,用于接收來(lái)自于代理適配器的命令和配置信息,生成工作負(fù)載請(qǐng)求,將該請(qǐng)求向服務(wù)器發(fā)送,并從服務(wù)器接收響應(yīng)信息。
13.根據(jù)權(quán)利要求12所述的測(cè)試框架系統(tǒng),其特征在于所述工作負(fù)載類型配置模塊接口包括使框架系統(tǒng)調(diào)用第三方工作負(fù)載類型配置模塊為不同的測(cè)試目的定義工作負(fù)載類型的功能。
14.根據(jù)權(quán)利要求12所述的測(cè)試框架系統(tǒng),其特征在于所述工作負(fù)載接口包括進(jìn)行工作負(fù)載建立,控制及監(jiān)視的功能。
15.根據(jù)權(quán)利要求12-14任一項(xiàng)所述的測(cè)試框架系統(tǒng),其特征在于所述控制器通過(guò)所述工作負(fù)載類型配置模塊接口使用一個(gè)或多個(gè)工作負(fù)載類型配置模塊進(jìn)行工作負(fù)載類型配置,指定將要生成所述工作負(fù)載類型下的工作負(fù)載請(qǐng)求的一個(gè)或多個(gè)代理機(jī)的地址和每個(gè)代理機(jī)所模擬的客戶數(shù),將在配置過(guò)程中所收集的信息通過(guò)控制器傳輸給對(duì)應(yīng)于相應(yīng)的一個(gè)或多個(gè)代理機(jī)地址的代理機(jī)適配器。
16.根據(jù)權(quán)利要求12-14任一項(xiàng)所述的測(cè)試框架系統(tǒng),其特征在于所述工作負(fù)載類型配置模塊為相應(yīng)的工作負(fù)載類型收集生成相應(yīng)的工作負(fù)載請(qǐng)求時(shí)所需的相關(guān)信息。
17.根據(jù)權(quán)利要求12-14任一項(xiàng)所述的測(cè)試框架系統(tǒng),其特征在于所述發(fā)送給代理機(jī)的信息至少包括工作負(fù)載類型及配置信息,和代理機(jī)所模擬的客戶數(shù)。
18.根據(jù)權(quán)利要求12-14任一項(xiàng)所述的測(cè)試框架系統(tǒng),其特征在于所述控制器通過(guò)向代理機(jī)發(fā)送命令控制測(cè)試工作的開(kāi)始和結(jié)束。
19.根據(jù)權(quán)利要求12-14任一項(xiàng)所述的測(cè)試框架系統(tǒng),其特征在于所述控制器動(dòng)態(tài)地從各代理機(jī)接收服務(wù)器的響應(yīng)信息。
20.根據(jù)權(quán)利要求12-14任一項(xiàng)所述的測(cè)試框架系統(tǒng),其特征在于所述控制設(shè)備還具有,一個(gè)工作負(fù)載類型庫(kù),用于存儲(chǔ)第三方所定義的工作負(fù)載類型及控制器在配置過(guò)程中所收集的信息。
21.根據(jù)權(quán)利要求20所述的測(cè)試框架系統(tǒng),其特征在于所述控制設(shè)備還具有,一個(gè)工作引擎庫(kù),用于存儲(chǔ)第三方所定義的工作引擎。
22.根據(jù)權(quán)利要求12-14任一項(xiàng)所述的測(cè)試框架系統(tǒng),其特征在于每個(gè)所述代理機(jī)上至少有一個(gè)工作負(fù)載引擎。
全文摘要
本發(fā)明公開(kāi)一種對(duì)具有混合工作負(fù)載的服務(wù)器性能進(jìn)行測(cè)試的框架系統(tǒng)及其實(shí)現(xiàn)方法。該系統(tǒng)具有工作負(fù)載類型配置模塊接口,包括使框架系統(tǒng)調(diào)用第三方工作負(fù)載類型配置模塊為不同的測(cè)試目的定義工作負(fù)載類型的功能;工作負(fù)載接口,包括進(jìn)行工作負(fù)載建立,控制及監(jiān)視的功能。第三方可以通過(guò)本發(fā)明框架系統(tǒng)的工作負(fù)載類型配置接口和工作負(fù)載接口將自己的工作負(fù)載靈活地加入框架系統(tǒng)進(jìn)行測(cè)試。
文檔編號(hào)G06F11/34GK1304247SQ00100949
公開(kāi)日2001年7月18日 申請(qǐng)日期2000年1月11日 優(yōu)先權(quán)日2000年1月11日
發(fā)明者扈曉煒, 馮南, 陳曉艷 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司