Jmeter分布式与Jenkins部署
(一) 为什么要开展Jmeter分布式测试
1.JMeter进行负载测试的时候,使用单台机器模拟测试超过1000个行程的并发就有些力不从心,在执行的过程中,JMeter自身会自动关闭,要解决这个问题,可以使用分布式测试,运行多台机器运行所谓的 Agent 来分担 JMeter自身的压力,并借此来获取更大的并发用户数。
2.模拟数以万计的并发用户时,利用meter提供的分布式功能,同时启动多台电脑进行分布式测试能解决jmeter自身的瓶颈
(二)Jmeter分布式执行原理
1.Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2.执行时:master会把脚本发送到每台slave上,slave拿到脚本后开始执行,slave执行时不需要启动Jmeter。只需要把jmeter-server.bat文件打开,它会自动通过非GUI模式来执行。(注意:如果引用到csv等外部的文件,则每台slaver所在的机器都需要相应位置放置该文件。
3.执行后:slave会把结果回传给master,master会收集所有slave的信息并汇总。
(三)jmeter分布式测试实战
1.slave机上需要安装JDK、Jmeter。并且配置好环境变量,JDK、Jmeter版本与master机保持一致
2.打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=172.16.1.114:1099,172.16.0.95:1099,172.16.0.90:1099,1099是端口号

3.打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动

此处写的是执行机的ip),如果有多台代理机,这里需要把所有的代理机的IP地址都加入进来。
4、打开jmeter-server.bat文件,设置完成了。
(四)jmeter分布式运行测试

(五)jenkins调度jmeter开展分布式压测
1.第一步安装jenkins

2.第二步配置Jenkins调度Jmeter开展分布式压测


(六)jmeter分布式压测报告

(七)常见报错信息
jmeter 启动jmeter-server.bat远程调用报错: java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件)。
1.找到apache-jmeter-4.0\bin\jmeter.properties
2.修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disable=true前的#),重新启动jmeter-server.bat
3.查看命令窗口显示则启动成功


(二)单个运行某个执行机的IP时,如果提示错误:Engine is busy - please try later。
或者提示: Connection refused to host: 192.168.11.14; nested exception is:
java.net.ConnectException: Connection timed out: connect
解决方案,关闭电脑的防火墙,和重启master,slave的jmeter-server.bat服务

