分机配置
1、执行配置文件:bin\jmeter.properties 文件
2、配置远程端口号,{jmeter默认端口号1099,可以不进行配置}
3、设置远程执行模式
- 设置配置文件:#mode=Standard前面的#注释去掉
- #server.rmi.ssl.disable=false 修改为:server.rmi.ssl.disable=true并且将前面的#注释去掉
4、运行jmeter-server.bat 程序
总机配置
1、执行配置文件:bin\jmeter.properties 文件
- 添加remote_hosts= {分机IP地址},{分级IP地址}
- #server.rmi.ssl.disable=false 修改为:server.rmi.ssl.disable=true并且将前面的#注释去掉。
- #mode=Standard前面的#注释去掉。这个操作是为了让主控机在执行后在察看结果树下能看到返回的响应信息(repsonse body)
注意事项
1、控制机与执行机在同一局域网
2、关闭防火墙,开放端口
3、如有参数化,参数文件地址要相同
4、jmeter版本需要一致
5、jmeter脚本添加了插件无法正常远程运行
6、最好jdk版本也要一致
通过命令负载运行jmeter脚本
1、jmeter -n -t xx.jmx -R xxx.xxx.xxx.xxx:5174,xxx.xxx.xxx.xxx:5172 -l xxx.jtl -j xxx.log 【生成log日志】
PS:-R表示选择执行=远程启动
-r 表示启动所有执行机=远程全部启动
2、jmeter -n -t 聚合报告.jmx -r -l result.jtl -e -o D:\apache-jmeter-5.0\test 【可生成html文件】
配置jmeter分布式可能出现的坑
在自己配置分布式压测过程中遇到的一些坑,然而百度都是零散的,花了很多时间,记录一下
前提:
1、配置分布式主机:https://blog.csdn.net/Cindy1013/article/details/80612834
坑1:
在启动jmeter-server.bat时出现如下图错误
java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定文件)
系统找不到指定文件
这个问题的解决思路如下:
在jmeter-properties配置文件中(meter-properties文件在安装目录的bin下)找到:
-
#server.rmi.ssl.disable=false
-
改为:
-
server.rmi.ssl.disable=true
坑2:
具体的报错信息忘记截图了,大概意思就是没有指定固定的端口号,导致无法连接肉鸡,配置如下:
-
找到jmeter-properties配置文件中这三个参数并配置他的端口号(要和remote_hosts配置的一样)
-
server_port=8888
-
server.rmi.port=8888
-
server.rmi.localport=8888
坑3:
-
报错如下
-
jmeter.samplers.RemoteTestListenerWrapper: java.rmi.ConnectException: Connection refused to host: xxxxx; nested exception is
发现启动的jmeter-server.bat之后DOS界面显示的ip地址和remote_hosts配置的不一致:导致控制机无法连接肉鸡
ip不一致
- 修改jmeter的启动ip如下:
Jmeter修改自身启动IP
分布式测试时,master机器有可能遇到多块网卡,然后IP会变为其它网段的IP,故而连接不上其它机器,或返回不了其它机器的执行结果。
这时个就应该修改一下Jmeter启动时使用的IP了。
在jmeter.bat中查找set ARGS这一句。
然后在其上边一行添加
set rmi_host=-Djava.rmi.server.hostname=你要更改的IP
然后在set ARGS这行最后加上空格%rmi_host%如图:
jmeter.bat
之后重启即可
jmeter分布式报错java.rmi.ConnectException: Connection refused to host:xxx的解决办法:
- 1,原因分析:
Jmeter采用了rmi进行远程调用,在开启RMI服务时,如果服务端有多个网卡,它只是使用其中任意一个网卡,默认情况下,导致jmeter的controller机器和agent机器不在同一个网段内,无法互通,导致失败
- 2,解决方法:
我们要在多网卡的服务器上开启RMI服务的话必须指定IP,使他们能够在同一个网段内。
需要以下几步(假定所有机器都在10.120.11.*网段,agent服务器为linux,controller服务器为windows):
- 修改agent服务器,指定agent机器的IP
修改jmeter-server文件
vi jmeter-server
修改RMI_HOST_DEF=-Djava.rmi.server.hostname=10.120.11.82- 修改server服务器,指定server机器的IP
修改jmeter.bat文件
新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214
修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
修改完成后,重新启动即