Fork me on GitHub

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

 

posted @ 2022-06-10 10:46  橘子偏爱橙子  阅读(710)  评论(0编辑  收藏  举报