jmeter(十六)分布式压测

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.png

3、master配置

  • jmeter.properties文件修改
  • remote_hosts=10.10.10.220:1089,10.10.10.221:1089
  • server.rmi.ssl.disable=true

4、slave配置

  • jmeter.properties文件修改
  • 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

你可能感兴趣的:(jmeter(十六)分布式压测)