在使用Jmeter进行接口的性能测试时,因为Jmeter 是JAVA应用,对负载机的CPU和内存消耗比较大。因此当须要模拟数以万计的并发用户时,可能会致使单台负载自己扛不住,出现的瓶颈。为了解决以上的问题,Jmeter提供的分布式功能,同时启动多台电脑进行分布式测试。html
一、在进行压测的过程当中若是出现Jmeter未响应,卡住,反应慢等现象。随即启动任务管理器进行查看,若是cup和内存都特别大。就能够说明如今的负载机出现了瓶颈,须要进行分布式测试。java
二、随着并发数的增加,TPS再也不增加,即出现瓶颈(排除服务器瓶颈及其余)。多是如今的负载机出现了瓶颈,须要进行分布式测试。服务器
三、在进行压测的过程当中出现错误,如Unrecognized Windows Sockets error: 0: recv failed。多是如今的负载机出现了瓶颈,须要进行分布式测试。并发
一、Jmeter分布式测试时,选择其中一台做为调度机(master),其它机器作为执行机(slave)。 分布式
二、执行时:master会把脚本发送到每台slave上,slave拿到脚本后开始执行,slave执行时不须要启动Jmeter。只须要把jmeter-server.bat文件打开,它会自动经过非GUI模式来执行。(注意:若是引用到csv等外部的文件,则每台slaver所在的机器都须要相应位置放置该文件。)性能
三、执行后:slave会把结果回传给master,master会收集全部slave的信息并汇总。测试
一、slave机上须要安装JDK、Jmeter。而且配置好环境变量。spa
二、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改成”remote_hosts=192.168.11.14:1099,1099是端口号(本人使用的是3.3的版本,能够不用写端口号,Jmeter会自动识别)。.net
三、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。3d
一、Controller机上须要安装JDK、Jmeter。而且配置好环境变量。
二、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。
三、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改成”remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口号(本人使用的是3.3的版本,能够不用写端口号,jmeter会自动识别)。
(此处写的是执行机的ip),若是有多台代理机,这里须要把全部的代理机的IP地址都加入进来。
四、打开jmeter-server.bat文件,设置完成了。
以访问百度为例:
一、JMeter 的 Controller 和 Agent 之间进行通信的默认 RMI
二、master和slave机中的jmeter版本必须一致(小版本也得一致)。
三、java的版本也得一致,不能一个java7一个java8(只要大版本一致便可)
四、单个运行某个执行机的IP时,若是提示错误:Engine is busy - please try later。
或者提示: Connection refused to host: 192.168.11.14; nested exception is:
java.net.ConnectException: Connection timed out: connect
解决方法:
参考:
---------------------------------------------------------------------------------------------------------------------------
https://www.cnblogs.com/fennudexiaoniao/p/6913395.htmlhttps://www.cnblogs.com/fennudexiaoniao/p/6913395.htmlhttps://www.cnblogs.com/whitewasher/p/6946207.html