Jmeter 分布式压测及可能出现的问题;
分布式原理:多台机器
一台master机 多台执行机; master机把压测脚本分发给执行机,压测完后master机再汇总结果.
一台master机 多台执行机; master机把压测脚本分发给执行机,压测完后master机再汇总结果.
(注:master与slave机的jmeter版本必须保持一致)
master机器上的准备工作如下:
1、先准备一个调试通过的下单接口;
2、找到jmeter的bin目录下的jmeter.properties;用写字板打开;
配置内容如下所示:
1、远程机slave需要关闭防火墙和VPN的虚拟网卡(我就是vpn这里卡了很久,若VPN开着 master远程执行时会卡死),如果没有VPN虚拟网卡则不需关闭;
远程机slave的设置:
jmeter.properties中设置端口为5174(我的两台slave的端口都用的1099,也可以设置一个未被占用的端口)
注:如果server.rmi.localport 和server_port前有#号,则去掉#号;
配置完成后,打开bin目录下的 jmeter-server.bat,查看启动成功,配置完成;
(注:上图中的IP若不是本机的IP,可能的原因:本机有多个网卡启动着如:本地链接、无线网卡,虚拟机网卡, 需要禁用没有使用的网卡,保持一个网卡启动着即可)
4、本地机master需要关闭防火墙和VPN的虚拟网卡,如果没有VPN虚拟网卡则不需关闭;
本地机master的设置:
jmeter.properties中设置remote_hosts的值,例如远程A主机的ip地址为:192.168.10.44;B远程主机为:192.168.11.61;
则填写方式如下图所示,IP地址后需要加上端口号,此处的端口号为前面设置的5174(我的1099);两个主机用逗号隔开;
(下图我的127.0.0.1 也做了执行机)
配置完成后,打开bin目录下的 jmeter-server.bat,查看启动成功,配置完成;
5、确认远程机和主机都关闭了防火墙、VPN虚拟网卡;
确认远程机和主机都设置了jmeter.properties;
确认远程机和主机都启动了jmeter-server.bat;
在主机端重启Jmeter;查看运行-远程启动下是否有远程机;
文件-打开;打开已经调试成功的下单接口;设置线程组的线程数为1,不循环;
点击运行-远程全部启动;
查看结果树,有两条http请求执行成功;查看日志;可以看出192.168.11.61先执行,对应第一条请求,192.168.10.44后执行,对应第二条请求;
问题1:
配置好远程机和本地机后,点击运行-远程全部启动;报错如下:
原因:远程机安装的是Jmeter2.13.本地机安装的是3.1;本地机和远程机安装版本一致就可解决;
问题2:
启动jmeter-server.bat时报错如下;
原因:启动了多个jmeter-server.bat.导致同一个端口被占用;关闭所有启动的jmeter-server.bat,再启用一次即可;
问题3:点击启动-远程启动某个主机时报错如下:
原因:远程机/本地机的jmeter-server.bat未启动。启动即可解决;