溫馨提示×

CentOS JMeter分布式測試實戰

小樊
48
2025-10-07 07:22:44
欄目: 智能運維

CentOS JMeter分布式測試實戰指南

一、環境準備

1. 基礎環境要求

所有節點(Master控制節點、Slave工作節點)需滿足:相同版本的JDK(建議1.8)、相同版本的JMeter(建議5.4及以上)、CentOS 7/8系統(確保內核穩定)。版本不一致會導致通信異?;蚬δ懿患嫒?。

2. 安裝Java環境

在所有節點執行以下命令安裝OpenJDK 1.8:

sudo yum install -y java-1.8.0-openjdk-devel
# 驗證安裝
java -version  # 應輸出1.8.x版本信息
javac -version # 確認編譯工具可用

3. 下載并解壓JMeter

在所有節點執行以下命令(以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節點配置

1. 修改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

2. 啟動JMeter Server服務

在Slave節點終端執行:

cd /opt/apache-jmeter-5.5/bin/
./jmeter-server

正常啟動后會顯示類似日志:

Starting the test on host <Slave節點IP> @ [當前時間] (JMeter version 5.5)

三、Master節點配置

1. 修改JMeter配置文件

進入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

2. (可選)優化jmeter-server文件

編輯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>

四、啟動分布式測試

1. 命令行方式(推薦)

在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格式的可視化報告。

2. GUI方式(調試用)

在Master節點啟動JMeter GUI:

jmeter

點擊頂部菜單欄【運行】→【遠程啟動】→ 選擇所有Slave節點(或“遠程啟動所有”),即可啟動分布式測試。

五、常見問題排查

1. 連接失敗

  • 原因:防火墻阻止了JMeter的RMI端口(默認1099)。
  • 解決:在Slave節點開放端口:
    sudo firewall-cmd --zone=public --add-port=1099/tcp --permanent
    sudo firewall-cmd --reload
    

2. 版本不一致

  • 現象:啟動時報錯“版本不兼容”或“通信協議不匹配”。
  • 解決:確保所有節點的JDK和JMeter版本完全一致(如JDK 1.8 + JMeter 5.5)。

3. 參數化文件缺失

  • 現象:Slave節點無法讀取CSV參數化文件,導致測試數據錯誤。
  • 解決:將Master節點中的CSV文件復制到Slave節點的相同相對路徑下(如/opt/scripts/data.csv)。

4. 節點未響應

  • 原因:Slave節點的jmeter-server進程未啟動或網絡不通。
  • 解決
    • 在Slave節點執行ps -ef | grep jmeter,確認jmeter-server進程存在;
    • 使用ping <Slave_IP>測試網絡連通性。

通過以上步驟,即可在CentOS環境下完成JMeter分布式測試的部署與執行。測試過程中建議通過tail -f /opt/results/result.jtl實時查看結果文件,或通過Master節點的GUI界面監控實時數據。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女