1、分布式压测前提条件:
-
系统上的防火墙已关闭或打开了正确的端口。
Centos防火墙设置可以参考https://blog.csdn.net/ytangdigl/article/details/79796961 -
所有客户端都在同一子网中。
-
如果使用192.xxx或10.xxx IP地址,则服务器位于同一子网中。如果服务器不使用192.xx或10.xx IP地址,则应该没有任何问题。
三台机的IP分别为10.10.10.83,10.10.10.220,10.10.10.221 -
确保JMeter可以访问服务器。
-
确保在所有系统上使用相同版本的JMeter和Java。混合版本将无法正常工作。
三台机上面安装的jmeter版本均是5.1.1,三台机上装的Java版本分别为1.8.0、 -
您已经为RMI设置了SSL或将其禁用。
2、原理图
image.png3、master配置
-
CSV Data Set Config
image.png -
jmeter.properties文件修改
-
remote_hosts=10.10.10.220:1089,10.10.10.221:1089
-
server.rmi.ssl.disable=true
4、slave配置
- server_port=1089
- server.rmi.localport=1089
- server.rmi.ssl.disable=true
5、slave启动jmeter-server
启动成功则显示如下日志:
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[10.10.10.221:1089](local),objID:[-1983a04d:16f89498bd6:-7fff, 2199364678249006616]]]
6、GUI模式-master启动脚本
image.png通过日志检查是否启动成功
image.png
7、非GUI模式-master启动脚本
参数
-n 非GUI模式运行 -t 测试脚本 -l 测试报告 -j 日志 -e -o 一起使用,后面跟生成报告的空目录
启动本地机器
jmeter -n -t C:\Users\Administrator\Desktop\jmeter\xiaobien.jmx -l F:\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin\report\xiaobien.csv -j F:\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin\report\xiaobien.log
启动远程机器-全部
jmeter -n -t C:\Users\Administrator\Desktop\jmeter\xiaobien.jmx -r
jmeter -n -t C:\Users\Administrator\Desktop\jmeter\xiaobien.jmx -r -l F:\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin\report\xiaobien.csv -j F:\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin\report\xiaobien.log
启动远程机器-单台
jmeter -n -t C:\Users\Administrator\Desktop\jmeter\xiaobien.jmx -R 10.10.10.89:1089 -l F:\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin\report\xiaobien.csv -j F:\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin\report\xiaobien.log
8、查看测试报告-手动导入
查看summary报告
image.png
查看tps报告
image.png
9、报告中显示空白,没有响应数据
user.properties配置
jmeter.save.saveservice.output_format=xml jmeter.save.saveservice.response_data=true jmeter.save.saveservice.samplerData=true jmeter.save.saveservice.url=true jmeter.save.saveservice.requestHeaders=true
jmeter.properties配置
jmeter.save.saveservice.output_format=xml jmeter.save.saveservice.response_data=true jmeter.save.saveservice.samplerData=true
9、启动jmeter-server脚本
#! /bin/sh
source /etc/profile
source ~/.bash_profile
nohub jmeter-server >/dev/null 2>&1 &
sleep 2
process_id=`ps -ef |grep jmeter-server | awk '{print $2}'`
echo jmeter-server process $process_id has started
exit 0
10、关掉jmeter-server脚本
#! /bin/sh
spid=`ps -ef | grep jmeter-server | awk '{ print $2 }'`;echo $spid;echo $pid;for pid in $spid;do if [ -n $pid ]; then kill -9 $pid; fi; done
exit 0
网友评论