所有节点(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界面监控实时数据。