Jmeter分布式压测总结
一、Jmeter分布式压测介绍
在工作中使用jmeter做大并发压力测试的场景下,单机受限内存、CPU、网络IO,会出现服务器压力还没有上去,但是压测服务器已经由于模拟的压力太大死机了。为了让jmeter工具提供更强大的负载能力,jmeter提供了多台机器同时产生负载的机制,下面是架构图。
二、安装部署步骤
1、在master和slaves机器上分别按照相同版本的jdk和jmeter
2、在master机器上
1)修改配置文件,进入jmeter/bin目录下
vim jmeter.properties
remote_hosts=10.162.8.101:8899,10.162.10.180:8899(slaves机器的ip和端口)
server.rmi.ssl.disable=true(禁用ssl)
如果master即作为master也作为slaves,同样添加即可,这里配置压力机A和压力机B
备注:remote_hosts一个IP一台机子,端口和IP根据自己的情况而定
2)启动jmeter服务
./jmeter-server(linux)
jmeter-server.bat(windows)
3)检查是否启动成功
ps -ef|grep jmeter-server
3、在slaves机器上
1)修改配置文件,进入jmeter/bin目录下
vim jmeter.properties
remote_hosts=127.0.0.1
server_port=8899
server.rmi.ssl.disable=true(禁用ssl)
2)启动jmeter服务
./jmeter-server(linux)
jmeter-server.bat(windows)
3)检查是否启动成功
ps -ef|grep jmeter-server
4、分布式执行
GUI模式 :运行——》远程启动、远程启动全部
non-GUO模式:命令行增加-r参数
jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result
注意事项:
1)提示:Connection refused to host: 192.168.10.102; nested exception is: java.net.ConnectExcepti
可能是你slave机机子没启动,Windows:双击jmeter-server.bat 或者 linux: ./jmeter-server,
2)master机作为压力机,除配置ip端口外,master机器对应的jmeter-server.bat(windows)也需要打开
3)jmx脚本文件不需要手动拷贝到Slave机器,master机器会自动分发
4)如果使用csv进行参数化,则需要把参数文件在每台slave上拷一份且路径需要设置成一样的。
总样本数 = 线程数 * 循环次数 * 执行机总数
三、脚本编写实例
示例接口:
POST /bff-app/v1/workshop/diys-list
Body入参:
{"changeSortType":false,"effectCode":[57,58,59,60,61,62,1,2,3,4,6,7,8,9,10,11,12,19,20,21,22,23,15,13,14,0,40,41,44,45,42,43,63,64,65,66],"sortType":1,"key":"","view":0,"transaction":"1654672279798"}
设置线程数为10,循环次数为1,也就是单台机器请求10次,总共请求20次(单台线程10 X 2)
测试结果:
参考链接:https://www.cnblogs.com/loveapple/p/10064134.html
本文来自博客园,作者:橘子偏爱橙子,转载请注明原文链接:https://www.cnblogs.com/xfbk/p/16362403.html