当单机没有足够能力来模拟较重的负载,可以使用jmeter分布式测试功能, 通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试.
每个线程均独立运行测试计划。因此,线程组常用来模拟并发用户访问。假如客户机没有足够的能力来模拟较重的负载,可以使用Jmeter的分布式测试功能来通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试。
我们通过单个jmeter 客户端就可以控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。
![54dc900c882cc2691d3607e2441c1f15.png](https://img-blog.csdnimg.cn/img_convert/54dc900c882cc2691d3607e2441c1f15.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
Jmeter分布式需要2台+ 以上 (含2台)的测试机, 其中一台作为控制机, 另外N台作为远程服务机
手上有两台机器 mac 192.168.5.11(控制机Contorller), windows 192.168.29.94(远程机)
先来配置远程服务机windows
远程服务机需要java环境和jmeter, 推荐和控制机版本保持一致.
修改%JMETER_HOME%/bin/jmeter.properties
![bb30ede5ac0f54d5cdd9203d914ad11b.png](https://img-blog.csdnimg.cn/img_convert/bb30ede5ac0f54d5cdd9203d914ad11b.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
修改端口号:
推荐远程服务机和控制机设置同一个端口, 默认是1099, 这里设置7890
再来配置控制机
同样是修改jmeter home目录下jmeter.properties
![e167630b16d02cb0f973b115fa3f9170.png](https://img-blog.csdnimg.cn/img_convert/e167630b16d02cb0f973b115fa3f9170.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
控制机在remote_host后面加远程服务机, 有多台用逗号隔开.
在启动jmeter时候会看到如下提示:
==============================================================
Don't use GUI mode for load testing, only for Test creation and Test debugging !
For load testing, use NON GUI Mode:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
& adapt Java Heap to your test requirements:
Modify HEAP="-Xms512m -Xmx512m" in the JMeter batch file
==============================================================
官方推荐使用非GUI模式, 在非GUI模式下关闭各类监听, 它会消耗不必要的开销.
配置完成后既可以启动:
上述配置完成后需要重启jmeter, 进入jmeter GUI模式, 可以看到远程启动多了服务机
![c88572c866ea92439221b45e5f649076.png](https://img-blog.csdnimg.cn/img_convert/c88572c866ea92439221b45e5f649076.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
现在还是无法启动远程服务机的
需要启动一个agent 服务, 他在 JMETER_HOME/bin/jmeter-server.bat 或 JMETER_HOME/bin/jmeter-server
启动方法是进入上述bin目录:
![e1b30283566a4a0ce792db739fc3fc9d.png](https://img-blog.csdnimg.cn/img_convert/e1b30283566a4a0ce792db739fc3fc9d.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
至此控制机和远程服务机分布式部署和配置完成, 现在就可以进行压测了
切记, 控制机和服务机都需要启动这个jmeter-server
控制机
![e0d82581b718f6a3cb61aff0b70e052e.png](https://img-blog.csdnimg.cn/img_convert/e0d82581b718f6a3cb61aff0b70e052e.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
远程服务机
![32b06b7ad0d76549e14ef0445495b06c.png](https://img-blog.csdnimg.cn/img_convert/32b06b7ad0d76549e14ef0445495b06c.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
命令行执行脚本:
jmeter -JthreadNum=100 -Jtime=200 -n -t demo/baidu.jmx -r -l demo/log.jtl
![3986631ab21d656c6769d48b47ad15f7.png](https://img-blog.csdnimg.cn/img_convert/3986631ab21d656c6769d48b47ad15f7.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
GUI模式同样效果, 线程组设置10个, 两台机器每台是分配到10个, 共2*10=20
![97c3a138cb340b7a34e4690816c3d72e.png](https://img-blog.csdnimg.cn/img_convert/97c3a138cb340b7a34e4690816c3d72e.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
注意事项
- 保持Contorller和远程机器的JDK、jmeter以及插件等配置版本一致;
- 测试数据有用到CSV或者其他方式进行参数化,需要将data pools在每台远程机上复制一份,且读取路径必须保持一致;
- 确保Contorller和远程机器在同一个子网里面;
- 检查防火墙是否被关闭,端口是否被占用(防火墙会影响脚本执行和测试结构收集,端口占用会导致远程机报错);
- 分布式测试中,通过远程启动代理服务器,默认查看结果树中的响应数据为空,只有错误信息会被报回;
- 如果并发较高,建议将Contorller机设置为只启动测试脚本和收集汇总测试结果,在配置文件里去掉Contorller机的IP;
- 分布式测试中,如果1S启动100个模拟请求,有5个Agent机,那么需要将脚本的线程数设置为20,否则模拟请求数会变成500,和预期结果相差太大。
今日推荐阅读文章精选推荐
为什么要做接口测试
JMeter数据库操作
Jmeter接口测试-正则表达式
JMeter中文返回乱码
Jmeter接口测试-参数化
JMeter接口测试-基础
测试-感想
咨询工作加微信
https://u.wechat.com/EPBj_hTn9Jo5UXt3hBJNCuA (二维码自动识别)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)
扫描二维码
欢迎自荐和推荐, 需要的微信推送简历!
请猛戳下面二维码了解更多
![842292de4b1d28a15cff85679b048378.png](https://img-blog.csdnimg.cn/img_convert/842292de4b1d28a15cff85679b048378.png)
![d2013714d1c1e1aa272331b5452d64d9.png](https://img-blog.csdnimg.cn/img_convert/d2013714d1c1e1aa272331b5452d64d9.png)