鍍金池/ 教程/ Java/ JMeter分布式負(fù)載測(cè)試(吞吐量控制器)
JMeter Webservice API測(cè)試計(jì)劃
JMeter測(cè)試計(jì)劃
JMS主題測(cè)試計(jì)劃
JMeter測(cè)試計(jì)劃元素
JMeter Web測(cè)試計(jì)劃
JMeter函數(shù)
JMeter計(jì)時(shí)器
JMeter監(jiān)聽(tīng)器
JMeter是什么?
JMeter分布式負(fù)載測(cè)試(吞吐量控制器)
JMeter FTP測(cè)試計(jì)劃
JMeter工作流程
JMeter數(shù)據(jù)庫(kù)測(cè)試計(jì)劃
測(cè)試基本術(shù)語(yǔ)
JMeter錄制登錄測(cè)試
JMeter控制器
JMS點(diǎn)對(duì)點(diǎn)測(cè)試計(jì)劃
JMeter安裝
JMeter預(yù)處理器元素
構(gòu)建JMeter測(cè)試計(jì)劃
JMeter配置元素
JMeter JMS測(cè)試計(jì)劃
JMeter特性
JMeter線程組
JMeter教程
JMeter后處理器元素

JMeter分布式負(fù)載測(cè)試(吞吐量控制器)

在本節(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è)包括:

  • 主頁(yè): www.yiibai.com
  • 第1頁(yè)(Java): www.yiibai.com/cplusplus/
  • 第2頁(yè)(C語(yǔ)言): www.yiibai.com/cprogramming
  • 第3頁(yè)(Python): www.yiibai.com/python

注意: 假設(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è)線程組。

創(chuàng)建JMeter測(cè)試計(jì)劃

  • 進(jìn)入到JMeter/bin文件夾并雙擊jmeter.bat文件以啟動(dòng)JMeter界面。
  • 單擊“測(cè)試計(jì)劃”節(jié)點(diǎn)。
  • 將此測(cè)試計(jì)劃節(jié)點(diǎn)重命名為Distributed Test
  • 選擇Distributed Test節(jié)點(diǎn),然后右鍵單擊所選項(xiàng)目。
  • 鼠標(biāo)懸停在“Add”選項(xiàng)上,然后將顯示元素列表。
  • 選擇Threads (Users) > Thread Group。

添加采樣器

接下來(lái)在Thread Group中添加一個(gè)HTTP RequestSampler。

  • 選擇“Thread Group”,然后右鍵單擊所選項(xiàng)。
  • 鼠標(biāo)懸停在“Add”選項(xiàng)上,然后將顯示元素列表。
  • 選擇Sampler > HTTP request選項(xiàng)。
  • 它將添加一個(gè)空的HTTP請(qǐng)求采樣器。

將HTTP Request Sampler的字段配置為:

  • Name - Home Page 。
  • 服務(wù)器名稱或IP - 在這個(gè)示例中,Web服務(wù)器名稱是 www.yiibai.com 。

現(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

添加監(jiān)聽(tīng)器

  • 選擇“Distributed Test Plan”元素。
  • 鼠標(biāo)懸停在“Add”選項(xiàng)上,然后將顯示元素列表。
  • 選擇Listener -> Aggregate Report。

保存并執(zhí)行測(cè)試計(jì)劃

  • 單擊File -> Save Test Plan as
  • 將整個(gè)測(cè)試計(jì)劃保存為Distributed_test1.jmx。

  • 單擊Run -> Start以執(zhí)行測(cè)試計(jì)劃。

驗(yàn)證輸出

可以在#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”)。

  • 選擇“Distributed Test”節(jié)點(diǎn),然后右鍵單擊所選項(xiàng)目。
  • 鼠標(biāo)懸停在“Add”選項(xiàng)上,然后將顯示元素列表。
  • 選擇“Threads (Users)” -> “Thread Group”。
  • 將此線程組重命名為Master Thread Group。
  • 選擇“Master Thread Group”節(jié)點(diǎn),然后右鍵單擊所選項(xiàng)。
  • 鼠標(biāo)懸停在“添加”選項(xiàng)上,然后將顯示元素列表。
  • 選擇Logic Controller -> Throughput Controller

下圖顯示了吞吐量控制器的默認(rèn)控制面板。

按照以下步驟在“Master Thread Group”節(jié)點(diǎn)下創(chuàng)建測(cè)試計(jì)劃:

  • 復(fù)制“主頁(yè)”采樣器并將其粘貼到吞吐量控制器中。
  • 再創(chuàng)建三個(gè)吞吐量控制器并復(fù)制粘貼其余的網(wǎng)頁(yè)采樣器。
  • 禁用/刪除分布式測(cè)試計(jì)劃節(jié)點(diǎn)下的線程組。

下圖顯示了“Master Thread Group”節(jié)點(diǎn)下的目錄結(jié)構(gòu)。

現(xiàn)在,已將主線程組中的用戶總數(shù)配置為“10”。 作為其結(jié)果,每個(gè)吞吐量控制器的“%”執(zhí)行將根據(jù)主線程組中的用戶總數(shù)進(jìn)行分配。

我們?yōu)槊總€(gè)吞吐量控制器分配了“%”執(zhí)行:

  • 10%為主頁(yè)
  • 20%為Java
  • C_Programming為20%
  • Cpp為50%

注意:主線程組中的線程數(shù)(用戶)可以根據(jù)應(yīng)用程序的實(shí)際預(yù)期負(fù)載而變化。

下圖顯示了Master Thread Group和整個(gè)吞吐量控制器的配置。

單擊Run -> Start,執(zhí)行測(cè)試計(jì)劃。

驗(yàn)證輸出

可以在#Samples標(biāo)簽中查看每個(gè)網(wǎng)頁(yè)的加載分布。