1.分布式压测原理

如下图(这个图说明的是要一台控制机,然后由这台控制机发压测脚本到每台远程执行机,然后由控制机收集执行机结果)

JMeter分布式压力测试_Java开发

2.修改Jmeter配置文件

  • 在主控机的jmeter的bin目录找到配置文件jmeter.properties。找到里面的remote_hosts部分,修改内容为:remote_hosts=xx,xx代表的是压力机的ip:port。如果是多个压力机,之间使用【,】分隔
  • 控制机端口修改,防止端口被占用(注意:控制机修改后,每台执行机的端口也要修改成一致)
  • 电脑防火墙关闭,防止拦截端口

JMeter分布式压力测试_Java开发_02 

修改内容如下(注意:如果控制机也作为测试机的话,那么控制机的 IP 也需要配置到 remote_hosts中)

JMeter分布式压力测试_Java开发_03

3.启动Jmeter服务

  • 每台测试机都需要开启Jmeter服务(即:在Jmeter安装目录下的bin目录下找到jmeter-server.bat文件,双击打开)
  • 如果控制机也作为测试机的话,那么控制机也需要开启Jmeter服务
  • jmeter-server.bat文件打开窗口如下
  • 如果下面的IP不是本机IP那么说明IP有问题(解决方案:查看电脑网络连接中的虚拟网络是否禁用了,没有禁用则禁用掉,因为IP错误很可能是获取到了虚拟IP)
  • 如果下面的端口与控制机配置的端口不一致,则需要修

JMeter分布式压力测试_Java开发_04 

4.启动控制机Jmeter执行脚本

(1)调试查看slave机与控制机是否连通

JMeter分布式压力测试_Java开发_05

(2)出现下图情况,说明 slave 与控制机连通了

JMeter分布式压力测试_Java开发_06

(3)接下来就可以通过"远程全部启动"来启动所有的slave机进行分布式压测脚本了

(4)注意事项:

  • 设置的线程数为1000,如果有4台(包括控制机)测试机,那么结果为4000次
  • 如果有参数化文件,那么在slave上也要存放一份,且文件所在路径必须与控制机一致