微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jmeter之分布式压测

适用版本:jmeter5.3

一、jmeter主机配置

1、打开jmeter.properties,配置master机器地址和端口

image-20210509182619818

在jmeter.bat文件中配置

set rmi_host=-Djava.rmi.server.hostname=本地ip地址
set   ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

我的ip地址

image-20210508213110371

image-20210509183125229

二、配置Slave ip和端口

进入服务器打开jmeter.properties 中,配置Slave服务器的ip

下面2种任选其一都可以

image-20210509183634011

开放端口:

server_port=8899
server.rmi.port=8899
server.rmi.localport=8899

配置jmeter -server,在最后一行中配置

RMI_HOST_DEF=-Djava.rmi.server.hostname=本机ip

image-20210509183951584

二、启动Slave

在bin目录下执行

./jmeter-server
然后从master启动

image-20210509184239951

以上分布式即可执行

关健日志查看

master机器:

jmeter.log文件

Slave机器:

./jmeter-server 输出的日志

tailf jmeter-server.log

问题1:

Engine is busy - please try later

image-20210509182834125

重启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填写的是

image-20210509185748890

但是使用Slave线程去跑的时候就会报上面的错误,使用master线程去跑的时候就有问题。

从上面给出的路径可以看出2个路径除了盘符不一致,路径分割符页不一致,

\这种符合在Windows机器可以运行,在Windows是不可以的。

所以要改成

../Data/username1.csv

在线程组中添加${__machineName()}

image-20210509190339120

可以看到2种线程完美运行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐