Ubuntu中JMeter如何进行分布式测试
Ubuntu环境下JMeter分布式测试实施指南
一、分布式测试原理概述
JMeter分布式测试通过**主节点(Controller)与从节点(Slave/Worker)**协同工作:主节点负责管理测试流程(分发脚本、收集结果),从节点负责执行实际的负载生成任务(不启动GUI)。这种方式可突破单机硬件限制(如CPU、内存),模拟更大规模的并发请求。
二、前置准备
-
环境要求
- 所有节点(主/从)需安装相同版本的JDK(推荐OpenJDK 11)和JMeter(推荐最新稳定版,如5.6.2),避免兼容性问题。
- 节点间处于同一局域网,IP互通;防火墙开放**RMI通信端口(默认1099)**及自定义端口(如60000-60100,用于远程连接)。
- 所有节点时间同步(通过
ntpdate命令校准,避免结果偏差)。
-
软件安装
- 安装JDK:在所有节点执行
sudo apt update & & sudo apt install openjdk-11-jdk -y,验证安装java -version。 - 下载JMeter:从官网下载最新稳定版(如
apache-jmeter-5.6.2.tgz),解压至所有节点的统一目录(如/opt/apache-jmeter-5.6.2)。
- 安装JDK:在所有节点执行
三、从节点(Slave)配置
从节点需配置为JMeter Server模式,负责接收主节点指令并执行测试:
-
修改JMeter配置文件
进入从节点JMeter目录的bin文件夹,编辑jmeter.properties文件:- 找到
server.rmi.ssl.disable=true(禁用SSL,简化配置),取消注释。 - 找到
remote_hosts=,在其后添加从节点IP及端口(默认1099),如remote_hosts=192.168.1.102:1099(多节点用逗号分隔)。 - (可选)修改
server_port为自定义端口(如server_port=1099),确保端口未被占用。
- 找到
-
配置JMeter Server启动脚本
编辑bin/jmeter-server文件(Linux下为Shell脚本),添加从节点IP参数:
JVM_ARGS="-Djava.rmi.server.hostname=192.168.1.102"(替换为从节点实际IP),保存后赋予执行权限:chmod +x jmeter-server。 -
启动从节点服务
在从节点终端执行:./bin/jmeter-server -Djava.rmi.server.hostname=192.168.1.102(替换为实际IP),看到“Created remote object”提示即启动成功。如需后台运行,可使用nohup ./bin/jmeter-server -Djava.rmi.server.hostname=192.168.1.102 &。
四、主节点(Controller)配置
主节点负责控制测试流程,无需修改默认配置(除非需禁用自身作为Worker):
-
修改JMeter配置文件
进入主节点JMeter目录的bin文件夹,编辑jmeter.properties文件:- 找到
remote_hosts=,添加所有从节点IP及端口(如remote_hosts=192.168.1.102:1099,192.168.1.103:1099),保存。 - (可选)若主节点不参与负载生成,添加
server.rmi.ssl.disable=true(禁用SSL)。
- 找到
-
验证从节点连接
在主节点终端执行:./bin/jmeter -n -t your_test.jmx -l result.jtl -R 192.168.1.102,192.168.1.103(-n表示非GUI模式,-t指定测试脚本,-l指定结果文件,-R指定从节点IP)。若输出“Starting distributed test with remote engines: [192.168.1.102, 192.168.1.103]”即连接成功。
五、执行分布式测试
-
准备测试脚本
在主节点编写JMX测试脚本(包含线程组、HTTP请求、监听器等),确保脚本中的参数化文件(如CSV)在所有从节点的相同路径下存在(如/opt/apache-jmeter-5.6.2/bin/test.csv)。 -
启动分布式测试
在主节点终端执行以下命令(以非GUI模式运行,生成HTML报告):
./bin/jmeter -n -t /opt/apache-jmeter-5.6.2/bin/your_test.jmx -l /opt/apache-jmeter-5.6.2/bin/result.jtl -e -o /opt/apache-jmeter-5.6.2/bin/reports -R 192.168.1.102,192.168.1.103
参数说明:-e:测试结束后生成HTML报告;-o:报告输出目录;-R:指定从节点IP列表。
-
查看测试结果
测试完成后,主节点的reports目录会生成HTML报告,可通过浏览器打开查看汇总结果(如响应时间、吞吐量、错误率等)。
六、注意事项
- 版本一致性:主从节点的JDK、JMeter及插件版本必须完全一致,避免兼容性问题。
- 参数化文件同步:若使用CSV参数化,需将参数文件复制到所有从节点的相同路径下,否则会报“File not found”错误。
- 防火墙设置:确保主从节点间的RMI端口(默认1099)及自定义端口开放,避免连接失败。
- 结果收集:分布式测试中,主节点的结果文件(如
.jtl)是所有从节点结果的汇总,无需单独合并。 - 内存调整:若从节点内存不足,可修改
jmeter脚本中的HEAP参数(如HEAP="-Xms2g -Xmx4g"),增加JVM堆内存。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中JMeter如何进行分布式测试
本文地址: https://pptw.com/jishu/735548.html
