基于压测平台的分布式压测
Jmeter分布式执行原理:
1、Jmeter分布式测试时,选择其中一台作为控制机(master),其它机器做为Agent执行机(slave)。
2、执行时,将命令发送到每台Agent节点,使用命令行模式执行压测脚本。
3、执行完成后,Agent会把结果回传给server,server会收集所有Agent的信息并汇总。
性能测试平台http://10.20.*.*:8080/renren-fast/index.html
自带分布式节点管理,如下图:
但在其配置分布式节点中,有几个需要注意的点。
1.配置一台slave机
进入usr/local/jmeter/bin 目录
1)修改jmeter.properties 文件:
将server.rmi.ssl.disable=false注释,并设置为true
2)slave机启动jmeter服务,不启动服务是无法被调用的
启动Agent节点,登录到slave机,进到存放压测脚本的目录,执行nohup jmeter-server -Djava.rmi.server.hostname=10.201.7.239 & ,启动Agent节点
注意:jmeter-server后面指定Agent ip
我们配置的是77,则执行:nohup jmeter-server -Djava.rmi.server.hostname=10.20.16.77 &
2.配置master机
进入usr/local/jmeter/bin 目录
1)修改jmeter.properties 文件:
将server.rmi.ssl.disable=false注释,并设置为true
设置 remote_hosts=10.201.7.239:1099 #代理机ip和端口,多个用","分隔
我们这里配的是两台remote_hosts=10.20.16.65:1099,10.20.16.77:1099,mater机自身如果参与压测也要进行配置
3.在压测平台中配置分布式节点,与master机jmter.properties中的配置一致
我们这里有两台,则配置两个
配置完了,测试一下看看!
以启动首页脚本为例:
看一下测试报告:
因执行的脚本是20个并发,循环1000且权重是100,并发数应是40,总请求数应是40000,成功!
4.参数化:
主从机压测时,如果脚本含有参数化文件如csv,这时需将参数化文件同步到slave机。
方法如下:
找到需要同步的csv文件,点击同步文件,同步成功后就可以开始压测了
踩过的坑:
配置好jmeter.properties,要重启压测平台,否则不能连接上啊!
master机如果想要作为压测机,也需在压测平台的节点管理添加。
注意事项:
为了减少出错的可能性,最好按照如下Jmeter 分布式要求:
1、各个机器在相同目录下安装相同版本的jdk;
2、各个机器在相同的目录下安装相同版本的jmeter 4.0,因压测平台是基于4.0的内核;