目录
一、概要
二、文件设置
三、运行
1、启动jmeter-server文件
2、GUI界面运行
3、非GUI运行
参考资料
需要进行高并发压测时,单台机器无法满足(jmeter工具网上查询不能输入太多线程,why?)需要一台master机器控制多台slave机,并将数据收集到master机上
master和slave在同一局域网内,能互相ping通,出错可以查看连接网络、防火墙是否关闭
安装的jmeter和JDK版本一致
如下图,机器不够的话可将master也做为slave机执行
1、master机和slave机的jmeter.properties文件,修改server.rmi.ssl.disable的值为true
server.rmi.ssl.disable=true
2、slave机修改下方端口号,两个一样即可
server_port=1099 server.rmi.localport=1099 #Mac注意端口号被占用的情况,lsof -i:1099 查看是否被占用 kill -9 PIN值 杀死占用进程
3、master机修改下方内容
remote_hosts=192.168.X.XXX:1209 #对应slave机的IP:端口号;多个slave中间用逗号隔开
所有的slave机启动bin目录下的jmeter-server.bat文件(不用打开jmeter界面),打开页面如下:
运行成功后会在查看报告里看到运行结果,总的请求量为master设置的线程数及循环次数*slave机数量的总和,在server文件中也会有start、finish显示
启动会出现错误:
解决方法:1、先查看slave是否打开server正常,Mac第二次运行时报端口号被占用,需要杀死进程重新打开
2、两台电脑直接IP是否能相互ping通,防火墙是否关闭
3、检查jmeter.properties文件中的设置, 包括master中的IP和端口号是否和slave一致、中英文符号、前边的注释#是否删除、slave有没有固定写死IP值,导致和启动的server文件IP值不一致
jmeter先生成.jmx脚本(脚本中尽量不要有汉字,会报错),每个slave都需要复制一份,启动jmeter-server文件后(最好在脚本目录下启动,所以把脚本放到了bin目录下),master机上在bin目录下打开命令窗口,输入命令语句:
jmeter -n -t D:\Jmeter\apache-jmeter-5.4.1\bin\test.jmx -r -l D:\jmeter压测数据\report\test.jtl -e -o D:\jmeter压测数据\report 说明: -n:非GUI模式执行JMeter; -t: 脚本文件(.jmx文件)的路径; -r: 远程运行 -l: 指定生成测试结果的保存文件(.jtl格式),此文件夹必须为空; -e:生成测试报告; -o:用于存放测试报告的路径;
可以在内网使用网线连接网络,较WiFi稳定
可以修改.jmx脚本的内容,包括地址、循环次数、线程数、响应时间等,均可以设置
Mac下启动jmeter-server文件失败可以输入命令
jmeter-server -Djave.rmi.server.hostname=ip
https://www.cnblogs.com/xiaofeng91/p/13203031.html (非GUI运行分布式命令)
https://blog.csdn.net/u010013191/article/details/108099775 (分布式压测)