参考文档:https://www.jianshu.com/p/bb752b99b95f
一、原理
1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2、 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,无图形化执行。
3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
二、执行机(slave)配置:
1、配置JDK、JMETER环境,参考
https://blog.csdn.net/oHanYi1/article/details/90232458
2、修改配置文件
cd usr/apache-jmeter-5.1.1/bin
vim jmeter.properties
要修改的内容如下:
server_port=10991
server.rmi.localport=10991
server.rmi.ssl.disable=true # 关闭rmi
操作步骤如下:
输入“/server_port”,查找到所在行
/server_port
按“i”,进入编辑
i
修改值为:
server_port=10991
按esc键,退出编辑状态
esc
再输入下面内容进行定位所在行
/server.rmi.localport
同理,把内容修改完后,分别按下面的按键进行保存并退出
esc 、 : 、 w 、 q
3、启动jmeter-server,在bin目录下,输入指令
cd /usr/apache-jmeter-4.0/bin/
./jmeter-server
4、多台执行机,请自行重复上述步骤,记得端口号要变一下。
三、调度机(master)配置:
1、用同样的方法,对jmeter/bin目录下的jmeter.properties进行更改,自行替换成自己的服务器IP和端口号
vim jmeter.properties
remote_hosts=172.31.17.1:10991,172.31.17.2:10993,172.31.16.3:10992
server.rmi.ssl.disable=true # 关闭rmi
2、打开Jmeter,选择运行,有运程启动、运程全部启动两个选项:
四、其它说明:
1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的,建议放在jmeter的bin目录下(即:和启动的jmeter-server.bat同一个目录)然后使用相对路径,如图:
3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。此处建议:jmeter4.0+JDK8
4、查询执行机(slave)的日志:
cat /usr/apache-jmeter-4.0/bin/jmeter-server.log