在本節(jié)中,我們將學(xué)習(xí)如何使用吞吐量控制器在JMeter中創(chuàng)建分布式負(fù)載測(cè)試計(jì)劃。
出于測(cè)試目的,我們將在我們網(wǎng)站 www.yiibai.com 的URL下的某些網(wǎng)頁(yè)上創(chuàng)建分布式負(fù)載。這些網(wǎng)頁(yè)包括:
注意: 假設(shè)創(chuàng)建了10個(gè)虛擬用戶(線程)來(lái)在網(wǎng)站上執(zhí)行分布式負(fù)載測(cè)試,然后所有其他網(wǎng)頁(yè)將由10個(gè)虛擬用戶的持續(xù)負(fù)載進(jìn)行測(cè)試。 但是,這不是一個(gè)現(xiàn)實(shí)世界的場(chǎng)景。 在現(xiàn)實(shí)世界中,同一URL下不同網(wǎng)頁(yè)的負(fù)載可能存在差異。
讓我們首先創(chuàng)建一個(gè)分布式負(fù)載測(cè)試計(jì)劃,而不使用吞吐量控制器。 對(duì)于此測(cè)試,我們已將單個(gè)虛擬用戶分發(fā)到每個(gè)線程組。
接下來(lái)在Thread Group中添加一個(gè)HTTP RequestSampler。
將HTTP Request Sampler的字段配置為:
現(xiàn)在,將復(fù)制線程組并將其粘貼到測(cè)試計(jì)劃中三次。 根據(jù)測(cè)試的網(wǎng)頁(yè)重命名每個(gè)HTTP請(qǐng)求采樣器。每個(gè)HTTP請(qǐng)求采樣器的服務(wù)器名稱都相同。
下圖顯示了“分布式測(cè)試計(jì)劃”下的目錄結(jié)構(gòu)。
分別配置Java,C_Programming和Cpp采樣器的路徑名。
以下圖像顯示了上述每個(gè)采樣器的相應(yīng)路徑名。
主頁(yè)
Java
C_Programming
CPP
將整個(gè)測(cè)試計(jì)劃保存為Distributed_test1.jmx。
單擊Run -> Start以執(zhí)行測(cè)試計(jì)劃。
可以在#Samples標(biāo)簽中查看每個(gè)網(wǎng)頁(yè)的加載分布。
現(xiàn)在,我們已經(jīng)成功執(zhí)行了分布式負(fù)載測(cè)試計(jì)劃,但是不使用吞吐量控制器。 但是,在應(yīng)用程序的實(shí)際負(fù)載測(cè)試期間,我們無(wú)法確定實(shí)際用戶的數(shù)量。 在這種情況下,需要使用吞吐量控制器。
首先,我們需要為測(cè)試計(jì)劃創(chuàng)建一個(gè)主線程組(“Distributed Test”)。
下圖顯示了吞吐量控制器的默認(rèn)控制面板。
按照以下步驟在“Master Thread Group”節(jié)點(diǎn)下創(chuàng)建測(cè)試計(jì)劃:
下圖顯示了“Master Thread Group”節(jié)點(diǎn)下的目錄結(jié)構(gòu)。
現(xiàn)在,已將主線程組中的用戶總數(shù)配置為“10”。 作為其結(jié)果,每個(gè)吞吐量控制器的“%”執(zhí)行將根據(jù)主線程組中的用戶總數(shù)進(jìn)行分配。
我們?yōu)槊總€(gè)吞吐量控制器分配了“%”執(zhí)行:
注意:主線程組中的線程數(shù)(用戶)可以根據(jù)應(yīng)用程序的實(shí)際預(yù)期負(fù)載而變化。
下圖顯示了Master Thread Group和整個(gè)吞吐量控制器的配置。
單擊Run -> Start,執(zhí)行測(cè)試計(jì)劃。
可以在#Samples標(biāo)簽中查看每個(gè)網(wǎng)頁(yè)的加載分布。