一. 搭建需要的环境
1. Java我使用的open jdk 14.0.2
2. Jmeter版本使用5.5
*注意1:controller机和slaver要求必须保证jdk/jmeter版本一致,必须一致,否则会报错
*注意2:open jdk高版本配5.5及以下版本jmeter容易出现各种各样的问题,安装之前可以先查一下
二. 开始配置分布式
Controller机:
1. 打开jmeter .bin/jmeter.properties
2. 修改remote_hosts, 改成要远程的虚拟机的 IPV4 地址,注意是IPV4,默认端口是1099,一般情况下不会有问题,如果有问题,更改下方的默认端口号即可
3.controller机也可以当做一台slaver机使用,在remote_hosts后添加上本机IPV4地址
4. 修改server.rmi.ssl.disable为true,否则会有一些坑
5. 启动jmeter-server.bat,controller机配置完成
*注意:任何修改都需要重新启动jmeter-server.bat,否则不生效
Slaver机
执行上述controller机的Step1, 2,4,5
以上,分布式配置完成
三. 打开controller jmeter GUI方式运行调试
四. 开始跑脚本,cmd方式运行
remote all的命令行:jmeter -n -t 脚本名.jmx -r -l .bin下的空folder名.jtl -e -o .bin下的空folder名
五. 执行完成 收report查看结果
六. 踩过的坑
1. java.net.ConnectException: Connection timed out: connect
解决办法:关闭controller & slaver机的防火墙
2. Error generating the report: org.apache.jmeter.report.dashboard.GenerationException: Error while processing samples: Consumer failed with message :Consumer failed with message :Consumer failed with message :Consumer failed with message :Begin size 0 is not equal to fixed size 5
解决办法:需要降低jdk版本(这里用的jmeter 5.4.3 + open jdk17.0.6),重新安装open jdk14.0.2,修改环境变量,问题得到解决
3. java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use: bind
解决办法:端口占用的事,修改jmeter.properties中的默认端口号