1. 程式人生 > >Apache JMeter壓力測試之分散式測試(多機聯測)

Apache JMeter壓力測試之分散式測試(多機聯測)

引言

利用JMeter進行負載測試的時候,使用單臺機器模擬數以千計的併發使用者有些力不從心,在執行的過程中,可能會遇到諸如CPU、記憶體負載過高,address already in use,程式自動關閉等問題。這時可以使用分散式測試,即在多臺機器上執行JMeter,以此獲取更大的併發使用者數。
關於分散式測試的詳盡說明,可參閱官網資料,該文件也可在本地JMeter解壓包中找到,位置為:%JMeter_HOME%/printable_docs/usermanual/jmeter_distributed_testing_step_by_step.html

下文作簡要說明。

測試說明

為方便演示,在本教程中使用GUI模式。 實際測試時應該使用非GUI模式進行負載測試。

術語

Master(主控節點)
執行JMeter GUI,啟動Slave,控制測試。
Slave(從節點)
執行jmeter-server,它從GUI接收命令並向目標系統傳送請求。
Target(目標伺服器)
要進行壓力測試的網路伺服器。

前置條件

(1) 所有的客戶端(主節點、從節點)上的防火牆已關閉或已開啟正確埠。
(2) 所有的客戶端位於同一個子網。
(3) 如果使用192.x.x.x或10.x.x.x IP地址,則伺服器位於同一子網中。 如果伺服器不使用192.xx或10.xx IP地址,則無此限制。
(4) 確保JMeter可以訪問伺服器。
(5) 確保所有的客戶端使用相同版本的JMeter和Java。混合版本將無法正常工作。

步驟

測試環境:
Win 10 + JDK 1.8 +Apache JMeter 3.2

(1) 在所有從節點,執行%JMeter_HOME%/ bin目錄下的jmeter-server.bat —— 假定我們使用6臺機器 192.168.0.10, ..., 192.168.0.15
(2) 在主節點的%JMeter_HOME%/ bin 目錄,找到 jmeter.properties ,使用文字編輯器開啟;
(3) 在開啟的檔案中檢視“remote_hosts=127.0.0.1”這一行,remote_hosts 表示從節點資訊。這裡修改為:
     remote_hosts=192.168.0.10:1099,192.168.0.11:1099 ,192.168.0.12:1099 ,192.168.0.13:1099 ,192.168.0.14:1099 ,192.168.0.15:1099
     —— 其中1099 為 JMeter 的主節點和從節點之間進行通訊的RMI 埠號,使用預設埠號(1099)時,可不填,即直接填入IP地址即可。
(4) 儲存檔案,執行主節點上%JMeter_HOME%/ bin目錄下的 jmeter.bat ,啟動JMeter,開啟要使用的測試計劃。
(5) 點選 Run -> Remote Start 選單,可以看到遠端啟動選單下面有6個IP地址,如果要讓某個節點執行,可以點選該節點的IP地址就可以。
(6) 如果要所有節點全部執行,可以點選Run-> Remote Start all ,或使用快捷鍵 Ctrl + Shift + R



Tips:
如果從節點不夠用,也可將主節點同時作為從節點使用。方法如下:
(1) 修改主節點的 jmeter.properties 檔案,將其IP地址寫入;
(2) 先開啟主節點,先執行jmeter-server.bat,然後再執行 jmeter.bat。
(3) 此時,進入Run -> Remote Start 選單,可以看到主節點也作為從節點執行。