JMeter 分布式集群远程压测及搭建常见问题

1、JMeter可以在以下场景下使用分布式远程压测:

  1. 性能测试:JMeter可以模拟大量用户并发访问,进行性能测试。当需要模拟成千上万的用户请求时,单台机器可能无法承受如此大的负载,此时可以使用分布式远程压测来将测试负载分发到多台机器上,提高测试的效率和准确性。
  2. 稳定性测试:在一段时间内持续发送请求是稳定性测试中的一种场景。例如,可能需要持续压测几个小时甚至几天时间,查看接口是否有报错或者CPU、内存是否会上涨。通过分布式远程压测,可以在多台机器上分配压测任务,持续发送请求,提高稳定性测试的效果。
  3. 数据库操作:JMeter不仅可以作为接口自动化工具,还可以作为日常数据库操作的工具。当需要进行大量的数据库操作时,例如模拟用户在某一段时间内对数据库进行大量的读写操作,可以通过分布式远程压测来提高测试效率,减少测试执行时间。

2、JMeter分布式远程原理

  1.JMeter 分布式测试,选择节点来做调度服务器,其他的节点作为执行节点,通过调度节点管理其他节点;

  2.启动服务时,调度服务器会把脚本发送到各个执行节点(脚本会发送到执行节点,但是数据不会发送),执行节点拿到脚本开始执行命令;

  3.各个执行节点执行结束以后将结果回传给调度节点,调度节点进行数据汇总;

  4. 原理图

简单来讲: Jmeter分布式测试时,选择一台机器作为控制机,其他机器作为执行机。执行时,控制机会把脚本发到执行机上,执行机开始执行,执行完毕后,会把结果回传到控制机。

3、环境配置

1、我们使用Window做为压力机主机,Linux作为压力机从机,Win方便可视化执行 

2、Jmeter在主机控制器上添加配置,打开bin/目录下的  jmeter.properties 文件

remote_hosts=192.168.124.129,192.168.124.130
server_port=1099
server.rmi.ssl.disable=true

3、编辑从机节点的  jmeter.properties 文件(两个从机节点都需要配置)

server_port=1099   
server.rmi.ssl.disable=true
server.rmi.localport=1001

4、压力从机启动jmeter-server

注意:

1.如果你的Controller节点参与了请求,此时jmeter-server也需要启动;

2.执行的脚本进行文件参数化,此时需要存放在jmeter-server启动的相对位置路径,而不是你脚本存储的相对路径,首先执行的时候,Controller节点会对脚本下发,他会下发到jmeter-server启动的路径,而不是你脚本存放的路径

 5、压机主机启动远程,分布式远程

 Linux服务器显示如下:

 6、非GUI启动远程机器

名词解释

  • 启动指定Slave节点

         启动命令:jmeter -n -t api.jmx -R 192.168.124.129

 

 

  • 启动所有Slave节点(添加参数-r)

        启动命令:  jmeter -n -t api.jmx -r 

 

常见问题FAQ

执行 sh jmeter-server报错:

 原因为:

Jmeter远程启动该服务器报错:no such object in table

原因:

remote_hosts=192.168.124.129,192.168.124.130 (去掉端口即可,因为远程机的server.rmi.localport=1001 注释打开了,会默认取这里的端口)
posted @ 2023-09-24 17:02  Test挖掘者  阅读(1436)  评论(0编辑  收藏  举报