本文主要是根據官方教程編寫。地址:Jmeter分佈式壓測
本文搭建架構,直接拿來官網的圖。注意下面說的服務端是指Slave,客戶端是指Master。
在搭建之前務必滿足如下要求:
1)系統上的防火牆已關閉或打開了正確的端口(直接關閉省事兒)。
2)所有客戶端都在同一子網中。
3)如果使用192.x.x.x或10.x.x.x IP地址,則服務器位於同一子網中。 其實如果服務器不使用192.xx或10.xx IP地址,應該沒有任何問題。
4)確保JMeter可以訪問服務器。
5)確保在所有系統上使用相同版本的JMeter和Java。混用版本將無法正常工作。
6)已經爲RMI設置了SSL或將其禁用。(設置SSL方法見文末,官方教程見設置SSL)
7)安裝JDK。我是JDK8
搭建步驟
1、開啓服務端。(兩臺Slave機器上)
./jmeter/bin/jmeter-server
2、編輯配置文件。(在Master機器上)
vi jmeter/bin/jmeter.properties
找到remote_hosts=127.0.0.1
添加自己的Slave機器Ip,例如:remote_hosts=192.168.1.1,192.168.1.2
3、開啓客戶端。(在Master機器上)
sh jmeter/bin/jmeter.sh
4、導入自己的jmx測試模板進行測試,頂層的Run目錄下可以選擇使用幾臺Slave壓測
設置SSL
其實就是對要連接的所有JMeter服務端和客戶端使用一對密鑰/證書。 而JMeter附帶了一個腳本,用於生成後綴爲.rmi的密鑰(及其對應的證書)的密鑰庫。設置方法如下
1、生產祕鑰(在其中一個服務端),執行如下命令並按照提示隨便填寫。
bin/create-rmi-keystore.sh
2、將產生的bin/rmi_keystore.jks文件拷貝到所有服務端和客戶端的jmeter/bin目錄下
注意點
1、RMI配置了,Master就是連不上Slave
檢測所有機器是否都在同一個子網內
2、細心觀察會發現,從客戶端壓測的時候返回結果有值,如果控制Slave進行壓測,雖然提示OK,但是返回結果爲空。
從2.9版開始,JMeter將剝離響應數據的所有測試結果發送到控制檯。所以說,這是正常的。