所有節點(Master控制節點、Slave工作節點)需滿足:相同版本的JDK(建議1.8)、相同版本的JMeter(建議5.4及以上)、CentOS 7/8系統(確保內核穩定)。版本不一致會導致通信異?;蚬δ懿患嫒?。
在所有節點執行以下命令安裝OpenJDK 1.8:
sudo yum install -y java-1.8.0-openjdk-devel
# 驗證安裝
java -version # 應輸出1.8.x版本信息
javac -version # 確認編譯工具可用
在所有節點執行以下命令(以JMeter 5.5為例):
wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.5.tgz
tar -xzf apache-jmeter-5.5.tgz -C /opt/ # 解壓至/opt目錄
# 設置環境變量(可選但推薦)
echo "export JMETER_HOME=/opt/apache-jmeter-5.5" >> ~/.bashrc
echo "export PATH=\$JMETER_HOME/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc # 生效環境變量
驗證JMeter安裝:
jmeter -v # 應輸出JMeter版本及構建信息
進入Slave節點的JMeter目錄,編輯bin/jmeter.properties
文件:
vim /opt/apache-jmeter-5.5/bin/jmeter.properties
修改以下關鍵參數:
# 禁用SSL(簡化配置,若需啟用需配置證書)
server.rmi.ssl.disable=true
# 設置RMI服務器主機名為當前節點IP(避免域名解析問題)
rmi.server.hostname=<Slave節點IP>
# 設置遠程啟動端口(默認1099,可自定義但需與Master一致)
server.rmi.localport=1099
在Slave節點終端執行:
cd /opt/apache-jmeter-5.5/bin/
./jmeter-server
正常啟動后會顯示類似日志:
Starting the test on host <Slave節點IP> @ [當前時間] (JMeter version 5.5)
進入Master節點的JMeter目錄,編輯bin/jmeter.properties
文件:
vim /opt/apache-jmeter-5.5/bin/jmeter.properties
修改以下參數:
# 指定Slave節點的IP和端口(多節點用逗號分隔)
remote_hosts=<Slave1_IP>:1099,<Slave2_IP>:1099
# 可選:設置客戶端RMI端口(默認0為隨機)
client.rmi.localport=0
編輯Master節點的bin/jmeter-server
文件,在RMI_HOST_DEF
處取消注釋并設置為Master節點IP:
vim /opt/apache-jmeter-5.5/bin/jmeter-server
修改以下行:
RMI_HOST_DEF=-Djava.rmi.server.hostname=<Master節點IP>
在Master節點終端執行以下命令:
jmeter -n \ # 非GUI模式(必需)
-t /opt/scripts/test_plan.jmx \ # 測試計劃文件路徑
-R <Slave1_IP>:1099,<Slave2_IP>:1099 \ # 指定Slave節點
-l /opt/results/result.jtl \ # 結果文件路徑
-e \ # 測試完成后生成報告
-o /opt/results/html_report # 報告輸出目錄
參數說明:
-n
:非GUI模式,減少資源消耗;-t
:指定JMX測試計劃文件;-R
:指定Slave節點列表(支持IP:端口格式);-l
:記錄測試結果的JTL文件;-e -o
:測試完成后生成HTML格式的可視化報告。在Master節點啟動JMeter GUI:
jmeter
點擊頂部菜單欄【運行】→【遠程啟動】→ 選擇所有Slave節點(或“遠程啟動所有”),即可啟動分布式測試。
sudo firewall-cmd --zone=public --add-port=1099/tcp --permanent
sudo firewall-cmd --reload
/opt/scripts/data.csv
)。jmeter-server
進程未啟動或網絡不通。ps -ef | grep jmeter
,確認jmeter-server
進程存在;ping <Slave_IP>
測試網絡連通性。通過以上步驟,即可在CentOS環境下完成JMeter分布式測試的部署與執行。測試過程中建議通過tail -f /opt/results/result.jtl
實時查看結果文件,或通過Master節點的GUI界面監控實時數據。