适用版本:jmeter5.3
一、jmeter主机配置
1、打开jmeter.properties,配置master机器地址和端口
在jmeter.bat文件中配置
set rmi_host=-Djava.rmi.server.hostname=本地ip地址
set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
我的ip地址
二、配置Slave ip和端口
进入服务器打开jmeter.properties 中,配置Slave服务器的ip
下面2种任选其一都可以
开放端口:
server_port=8899
server.rmi.port=8899
server.rmi.localport=8899
配置jmeter -server,在最后一行中配置
RMI_HOST_DEF=-Djava.rmi.server.hostname=本机ip
二、启动Slave
在bin目录下执行
./jmeter-server
然后从master启动
以上分布式即可执行
关健日志查看
master机器:
jmeter.log文件
Slave机器:
./jmeter-server 输出的日志
tailf jmeter-server.log
问题1:
Engine is busy - please try later
重启Slave即可解决
问题2:
Server failed to start: java.rmi.server.ExportException: Port already in use: 8899; nested exception is:
java.net.BindException: Address already in use (Bind failed)
An error occurred: Port already in use: 8899; nested exception is:
java.net.BindException: Address already in use (Bind failed)
杀掉进程
ps ax | grep "ApacheJMeter.jar" | awk '{print $1}' | xargs kill
问题3:
Could not read file header line for file ..\Data\username1.csv
该问题是脚步路径描写错误
分布式测试中,参数文件(例如:CSV Data Set Config)的路径master和Slave机器需要保持一致
我这里master的路径是
E:\apache-jmeter-5.3\Data\username1.csv
Slave的路径是
/opt/apache-jmeter-5.3/Data/username1.csv
由于master和Slave路径不一致,所以这里只能使用相对路径去写
master填写的是
但是使用Slave线程去跑的时候就会报上面的错误,使用master线程去跑的时候就有问题。
从上面给出的路径可以看出2个路径除了盘符不一致,路径分割符页不一致,
\这种符合在Windows机器可以运行,在Windows是不可以的。
所以要改成
../Data/username1.csv
在线程组中添加${__machineName()}
可以看到2种线程完美运行。