Jmeter_分布式压测配置&命令行参数说明
前置条件
电脑A,电脑B,电脑C均安装相同版本的JMeter 和JDK。其中电脑A作为控制机(master),电脑B和电脑C作为施压机(slave)
电脑A IP:172.16.0.114
电脑B IP:172.16.0.115
电脑C IP:172.16.0.116
环境部署并使用
1、在master设备(电脑A)的 JMeter 的bin目录下,找到jmeter.properties文件,编辑该文件,将slave设备(电脑B、电脑C)的ip地址写入该文件,如:
修改:remote_hosts=172.16.0.115,172.16.0.116(若想把master机器当做施压机,将master的IP添加上即可)
在该文件修改 server.rmi.ssl.disable=true
2、运行所有slave机器上的jmeter-server文件,启动slave设备的jmeter服务,备注:window上运行jmeter-server.bat,linux上运行jmeter-server)
3、关闭所有机器(A、B、C)的防火墙,如果是公司不允许关闭防火墙,需要开启所有端口权限,仅开启1099端口或自定义的其他端口,管理机是连不上slave机器的。
4、启动管理机(A)的jmeter.bat,选择菜单“Run”--->"Remote Start",可看到你将用来产生负载的slave机器,此时你将可以实现使用多台机器进行负载测试了。如果需要停止远端任务,点击“Remote Stop All” 即可
5、查看压测机是否执行任务
命令行参数说明
命令行常用参数
- -n 表示非GUI模式运行
- -t 加载jmeter脚本,指定jmeter脚本的路径,即jmx文件的路径
- -l 设置生成测试结果文件的路径,结果文件后缀设置为 .jtl
- -r 启动jmeter.properties中配置的远程负载机进行压测。若不指定IP则执行全部机器,若指定IP则只执行指定机器。
- -R 在命令行直接配置远程负载机进行远程执行
- -g 加载jtl测试结果文件
- -JParametersName=value 仅用于本地参数化方式,若使用-G,参数化不会生效
- -GParametersName=value 仅用于远端参数化方式,若使用-J,参数化不会生效
脚本中不需要从命令行中获取参数化值时,向远端下发压测命令:
jmeter -n -t demo.jmx -r
脚本中需要从命令行获取参数化值时,向远端下发压测命令:
jmeter -Gthread=20 -Gduration=200 -n -t demo.jmx -r # 注:thread、duration为参数化变量名称
脚本中需要从命令行获取参数化值时,向本地下发压测命令:
jmeter -Jthread=20 -Jduration=200 -n -t demo.jmx
常见问题
1、执行报错:Error in rconfigure() method java.rmi.ConnectException: Connection refused to host
解决方法:关闭防火墙,开放所有端口权限