在本節(jié)中,我們將學習如何使用吞吐量控制器在JMeter中創(chuàng)建分布式負載測試計劃。
出于測試目的,我們將在我們網(wǎng)站 www.soulsinkind.com 的URL下的某些網(wǎng)頁上創(chuàng)建分布式負載。這些網(wǎng)頁包括:
• 主頁: www.soulsinkind.com
• 第1頁(Java基礎(chǔ)): http://www.soulsinkind.com/tutorial_java_se/
• 第2頁(JSP): http://www.soulsinkind.com/jsp/
• 第3頁(java多線程編程): http://www.soulsinkind.com/javathread/
注意: 假設創(chuàng)建了10個虛擬用戶(線程)來在網(wǎng)站上執(zhí)行分布式負載測試,然后所有其他網(wǎng)頁將由10個虛擬用戶的持續(xù)負載進行測試。 但是,這不是一個現(xiàn)實世界的場景。 在現(xiàn)實世界中,同一URL下不同網(wǎng)頁的負載可能存在差異。
讓我們首先創(chuàng)建一個分布式負載測試計劃,而不使用吞吐量控制器。 對于此測試,我們已將單個虛擬用戶分發(fā)到每個線程組。
• 進入到JMeter/bin文件夾并雙擊jmeter.bat文件以啟動JMeter界面。
• 單擊“測試計劃”節(jié)點。
• 將此測試計劃節(jié)點重命名為Distributed Test。
• 選擇Distributed Test節(jié)點,然后右鍵單擊所選項目。
• 鼠標懸停在“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.soulsinkind.com 。
現(xiàn)在,將復制線程組并將其粘貼到測試計劃中三次。 根據(jù)測試的網(wǎng)頁重命名每個HTTP請求采樣器。每個HTTP請求采樣器的服務器名稱都相同。
下圖顯示了“分布式測試計劃”下的目錄結(jié)構(gòu)。

分別配置Java,C_Programming和Cpp采樣器的路徑名。
以下圖像顯示了上述每個采樣器的相應路徑名。
主頁

Java

Java_JSP

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

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

• 單擊Run -> Start以執(zhí)行測試計劃。
可以在#Samples標簽中查看每個網(wǎng)頁的加載分布。

現(xiàn)在,我們已經(jīng)成功執(zhí)行了分布式負載測試計劃,但是不使用吞吐量控制器。 但是,在應用程序的實際負載測試期間,我們無法確定實際用戶的數(shù)量。 在這種情況下,需要使用吞吐量控制器。
首先,我們需要為測試計劃創(chuàng)建一個主線程組(“Distributed Test”)。
• 選擇“Distributed Test”節(jié)點,然后右鍵單擊所選項目。
• 鼠標懸停在“Add”選項上,然后將顯示元素列表。
• 選擇“Threads (Users)” -> “Thread Group”。
• 將此線程組重命名為Master Thread Group。
• 選擇“Master Thread Group”節(jié)點,然后右鍵單擊所選項。
• 鼠標懸停在“添加”選項上,然后將顯示元素列表。
• 選擇Logic Controller -> Throughput Controller。

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

按照以下步驟在“Master Thread Group”節(jié)點下創(chuàng)建測試計劃:
• 復制“主頁”采樣器并將其粘貼到吞吐量控制器中。
• 再創(chuàng)建三個吞吐量控制器并復制粘貼其余的網(wǎng)頁采樣器。
• 禁用/刪除分布式測試計劃節(jié)點下的線程組。
下圖顯示了“Master Thread Group”節(jié)點下的目錄結(jié)構(gòu)。

現(xiàn)在,已將主線程組中的用戶總數(shù)配置為“10”。 作為其結(jié)果,每個吞吐量控制器的“%”執(zhí)行將根據(jù)主線程組中的用戶總數(shù)進行分配。
我們?yōu)槊總€吞吐量控制器分配了“%”執(zhí)行:
• 10%為主頁
• 20%為Java
• C_Programming為20%
• Cpp為50%
注意:主線程組中的線程數(shù)(用戶)可以根據(jù)應用程序的實際預期負載而變化。
下圖顯示了Master Thread Group和整個吞吐量控制器的配置。





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

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