接上一篇, 在使用 JMeter 进行性能测试时,难免遇到要求并发请求数比较大的场景,此时单台测试机的配置(CPU、内存、带宽等)可能无法支持此性能测试场景。此时 JMeter 提供的分布式测试功能就有了用武之地。
安蜀黍在崇明岛抓螃蟹回来了,崇明景美空气好,螃蟹满地跑(主图是东平森林公园)
今天主要说的是分布式压测:
Jmeter分布式测试
1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行。
3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
调度机(Controller):主要负责性能测试脚本的分发,及各个执行机(Slave)的测试结果收集汇总,报告产出。
执行机(Slave):主要负责执行性能测试脚本及断言等(命令行模式执行,无界面),并将执行结果反馈给调度机(Controller),若断言执行成功则不返回请求响应数据及详细断言信息。
执行机(slave)配置
master和slave机中的jmeter版本必须一致(小版本也得一致)
java的版本也得一致,不能一个java7一个java8(只要大版本一致即可)
它们在同一个网段内
配置执行机服务器远程启动端口,
修改配置文件:JMETER_HOME/bin/jmeter.properties 中如下信息即可完成配置执行机远程启动端口(默认为 1099)
server_port=1029
server.rmi.localport=1029
启动执行机服务器
调度机(Controller)配置
1、添加执行机(Slave)
路径:JMETER_HOME/bin/jmeter.properties,添加如下所示的执行机信息(IP为示例,请配置正确的执行机IP和端口):
remote_hosts=10.13.223.202:1099,10.13.225.12:1099
ps: 因为是用brew 装的,所以搜索bin的时候费了周折,最后用以下命令找到了jmeter.properties:
brew info jmeter
2、启动调度机
启动后,依次点击【运行/远程启动】,即可查看配置的远程执行机信息,如下图所示:
可以 掉用某个单独的远程机,也可以点击“远程全部启动”来运行所有远程机。
也可以用命令来执行:
jmeter -n -t Downloads/loginjmeter.jmx -R 10.13.225.12:1099 -l result.jtl -e -o Downloads/performance
生成的结果如图:
OK, 今天先到这里。
未完待续。。。