Jmeter+Windows分布式压测配置和⾮GUI命令⾏使⽤总结
一、为什么要使用分布式测试
按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。
有时候为了尽量模拟业务场景,需要模拟大量的并发请求,这个时候单台压力机就显得有心无力。针对这个情况,jmeter的解决方案是支持分布式压测,即将大量的模拟并发分配给
多台压力机,来满足这种大流量的并发请求场景。
二、分布式压测的原理
1、分布式测试中,选择一台作为管理机(Contorller),其他的机器作为测试执行的代理机(Agent);
2、执行测试时,由Contorller通过命令行将测试脚本发给Agent,然后Agent执行测试(不需要启动GUI),同时将测试结果发送给Contorller;
3、测试完成,可以在Contorller上的监听器里面看到Agent发来的测试结果,结果为多个Agent测试结果汇总而成;
三、命令行模式优点
1、节约系统资源:无需启动界面,节约系统资源
2、便捷快速:仅需启动命令行,输入命令便可执行,是为命令达人最爱
3、易于持续集成:可通过shell脚本命令执行
四、参数详解

五、分布式压测配置及运行
本次测试以windows系统为例(既是管理机又是代理机)
5.1 修改配置
1、打开本机下jmeter安装文件下的bin目录:jmeter.properties文件,找到 server.rmi.ssl.disable=false 改为 true,如下:

2、jmeter安装文件下的bin目录下双击 jmeter-server.bat ,这个 ip 有用,待会要配到 jmeter.properties的配置文件里;

3、打开本机下jmeter安装文件下的bin目录:jmeter.properties文件,找到 remote_hosts ,把刚才第二个步骤的 ip 配进去,如下所示:

多个机器IP用英文半角逗号隔开,修改保存。
5.2 GUI模块下运行压测脚本
1、先启动 jmeter-server.bat,再启动 jmeter.bat,jmeter界面下中运行一个 agent,如下:

2、脚本运行时可以在jmeter-sever.bat窗口中查看运行情况,如下:

5.3 非GUI模块下运行压测脚本
5.3.1 执行测试脚本
jmeter -n -t test.jmx
命令行窗口输出如下所示:

5.3.2 指定结果文件及日志路径
jmeter -n -t test.jmx -l test.jtl -j report\01-log.log
命令行窗口输出如下所示:

5.3.3 分布式(远程)执行默认服务器列表
jmeter -n -t test.jmx -r -l test.jtl -j report\01-log.log
命令行窗口输出如下所示:

5.3.4 分布式(远程)执行执行服务器列表
jmeter -n -t test.jmx -R 192.168.2.65:1099 -l test.jtl -j report\01-log.log
命令行窗口输出如下所示:

5.3.5 分布式(远程)执行执行服务器列表并生成HTML报告
jmeter -n -t test.jmx -R 192.168.2.65:1099 -l test.jtl -e -o report -j log\01-log.log
命令行窗口输出如下所示:

生成的html报告如下所示:

六、注意事项
1、保持Contorller和Agent机器的JDK、jmeter以及插件等配置版本一致;
2、如果测试数据有用到CSV或者其他方式进行参数化,需要将data pools在每台Agent上复制一份,且读取路径必须保持一致;
3、确保Contorller和Agent机器在同一个子网里面;
4、检查防火墙是否被关闭,端口是否被占用(防火墙会影响脚本执行和测试结构收集,端口占用会导致Agent机报错);
5、分布式测试中,通过远程启动代理服务器,默认查看结果树中的响应数据为空,只有错误信息会被报回;
6、如果并发较高,建议将Contorller机设置为只启动测试脚本和收集汇总测试结果,在配置文件里去掉Contorller机的IP;
7、分布式测试中,如果1S启动100个模拟请求,有5个Agent机,那么需要将脚本的线程数设置为20,否则模拟请求数会变成500,和预期结果相差太大。
七、Jmeter使用过程中遇到的问题及解决办法
参考链接1:https://blog.csdn.net/qq_36468169/article/details/100599836
参考链接2:http://www.javashuo.com/article/p-mmdmlevl-sb.html
部分内容摘自:
本文来自博客园,作者:别摸我的马甲线,转载请注明原文链接:https://www.cnblogs.com/a-wyw/p/16249109.html

浙公网安备 33010602011771号