Java教程

jmeter非GUI分布式压测

本文主要是介绍jmeter非GUI分布式压测,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

 

一、概要

二、文件设置

三、运行

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中间用逗号隔开

三、运行

1、启动jmeter-server文件

所有的slave机启动bin目录下的jmeter-server.bat文件(不用打开jmeter界面),打开页面如下:

2、GUI界面运行

运行成功后会在查看报告里看到运行结果,总的请求量为master设置的线程数及循环次数*slave机数量的总和,在server文件中也会有start、finish显示

启动会出现错误:

解决方法:1、先查看slave是否打开server正常,Mac第二次运行时报端口号被占用,需要杀死进程重新打开

                   2、两台电脑直接IP是否能相互ping通,防火墙是否关闭

                   3、检查jmeter.properties文件中的设置, 包括master中的IP和端口号是否和slave一致、中英文符号、前边的注释#是否删除、slave有没有固定写死IP值,导致和启动的server文件IP值不一致

3、非GUI运行

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                 (分布式压测)

这篇关于jmeter非GUI分布式压测的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!