Jmeter 分布式测试完整实践过程(部署成功)

单台压测机通常会遇到客户端瓶颈,受制于客户机的性能。可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况。

更多学习资料:https://edu.csdn.net/course/detail/25768

更多学习资料:https://edu.csdn.net/course/detail/22948

https://edu.csdn.net/course/detail/28103

jmeter 分布式压测原理:

 

分布式压测分为两块: 控制器(controller)和代理(agent)

 

1、controller 负责把脚本分发给 agent执行。

2、agent 负责执行脚本,产生对服务器的实际压力,agent 运行 non GUI model,点击 jmeter-server.bat 即可。agent 执行脚本后,把压测的结果发送给 controller。

3、controller 作为控制器不加入实际测试(也可以加入),只负责发送和收集 agent 信息。

 

 

配置 agent

1. 我的jmeter版本是 apache-jmeter-5.1,在 agent 机器上需要修改配置 jmeter.properties,修改以下两处配置:1)找到 server_port 去掉 #,设置端口 。 2)找到server.rmi.ssl.disable=false 改成 true

Jmeter 分布式测试完整实践过程(部署成功)

Jmeter 分布式测试完整实践过程(部署成功)

2. 双击 jmeter-server.bat ,这个 ip 有用,待会要配到 controller 机器上的配置文件里(若报错'jmeter' is not recognized,需要配置 jmeter 环境变量)(启动中间提示的IP 地址必须是内网的IP 地址,如果是外网IP 地址需要关闭虚拟网卡)

Jmeter 分布式测试完整实践过程(部署成功)

 

配置 controller

1. 打开 controller 的配置文件 jmeter.properties 找到 remote_hosts ,把刚才第二个步骤的 ip 配进去Jmeter 分布式测试完整实践过程(部署成功)

打开 controller 的配置文件 jmeter.properties ,找到 server.rmi.ssl.disable=false 改成 true (此处 controller 也需要修改,不然会报错 )

Jmeter 分布式测试完整实践过程(部署成功) 

 

更多学习资料:https://edu.csdn.net/course/detail/25768

更多学习资料:https://edu.csdn.net/course/detail/22948

https://edu.csdn.net/course/detail/28103

注意事项:

  1. agent 和 controller 两台机器网络必须互通,telnet 端口是否通
  2. Jmeter 版本必须一致
  3. JDK 版本一致,JDK1.8 对应(JMETER 5.1),必须配置JDK 的环境变量,必须配置JMETER 环境变量
  4. 如果controller 也需要进行压测需启动jmeter.server,agent 机只需启动jmeter.server 即可
  5.  服务上显示 运行成功提示

 jmeter.server 启动是显示是外网IP,(问题的根源在于:我安装的VMware的一个windows虚拟机的网络设置成了“Bridge 并勾选 Replicate physical network IP address所以在controller机器的网络路由设置中,显示的网络连接为:VirtualBox Host-Oly Network,在这个连接上右键,选择“Disable“,禁用掉,然后重新运行jmeter-server.bat,在窗口中发现IP已经正确了,这样问题就解决了)

Jmeter 分布式测试完整实践过程(部署成功)

运行效果

 

controller  启动jmeter.bat 编写脚本

 

Jmeter 分布式测试完整实践过程(部署成功)

 

Jmeter 分布式测试完整实践过程(部署成功) 

Jmeter 分布式测试完整实践过程(部署成功) 

聚合报告中间的样本数量=线程数*循环次数*agent(机器台数)=1*1*2=2

   分布式测试总样本数=线程数 x 循环次数 x slave负载机数量  

 

有问题记得看jmeter.server.log 定位问题

 

更多学习资料:https://edu.csdn.net/course/detail/25768

更多学习资料:https://edu.csdn.net/course/detail/22948

https://edu.csdn.net/course/detail/28103