目录
一、JMeter分布式执行原理
二、jmeter分布式部署
三、jmeter分布式执行
X、常见问题
1、Cannot start. localhost.localdomain is a loopback address
一、JMeter分布式执行原理
1、jmeter分布式压测时,选择其中一台作为调度机(master),其他机器做为执行机(slave)
2、执行时,调度机(master)会把脚本发送到每一台执行机(slave)上,执行机(slave)拿到脚本后就开始执行,执行机(slave)执行时不需要启动GUI,通过命令行模式执行。
注意:每一台jmeter远程服务器都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划。所以并发用户数需要根据节点总数计算。
3、执行完成后,执行机(slave)会把结果回传给调度机(master),调度机(master)会收集所有执行机(skave)的信息。
二、jmeter分布式部署
注意:所有机器上的java
和jmeter
版本必须一致
1、在所有节点安装jdk和jmeter。
2、修改jmeter.properties文件。
文件在jmeter下的 /bin/jmeter.properties 下。
slave机器:修改remote_hosts,把127.0.0.1修改成本机的IPv4 地址和端口号(默认端口为1099,可以修改),多个执行机以逗号,分割
master机器:修改remote_hosts,把127.0.0.1修改成所有slave地址和端口号(默认端口为1099,可以修改),多个执行机以逗号,分割
注意:
1、可以开启弃用SSL秘钥配置,因为使用秘钥发现坑有些多
在jmeter.properties
文件修改server.rmi.ssl.disable=true,没有这个配置的话可以新增一行
2、在slave节点少的时候,master机器也可以作为slave节点使用
在jmeter.properties文件中填写自己的ip就可以;在slave节点多的时候,master最好不要同时作为slave节点,因为他要对slave节点进行调度数据处理等。
要留意slave的机子是否开启了防火墙等。
三、jmeter分布式执行
1、运行所有 slave 机器上的 jmeter-server 文件(如果master也作为slave使用,也要执行)
2、使用命令行执行调试好的 jmeter 脚本,命令如下:
在JMeter bin文件夹下执行:jmeter -n -t baidu.jmx -l baidu-result2.jtl
(baidu.jmx 是 jmeter执行脚本,要写相对路径)
X、常见问题
1、Cannot start. localhost.localdomain is a loopback address
服务器启动异常:java远程方法调用抛出异常:无法启动服务。localhost.localdomain是一个本地环回地址
解决方案:
编辑jmeter-server文件,取消RMI_HOST_DEF的注释项,固定设置当前Linux主机查询到的IP
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.0.107