一、Jmeter分布式执行原理:
1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为执行机(Slave)。
2、执行时,Controller会把脚本发送到每台Slave上,Slave 拿到脚本后开始执行,Slave执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。
3、执行后,Slave会把结果回传给Controller,Controller会收集所有Slave的信息并汇总。
二、前置条件
1、控制机(Controller)和执行机(Slave)的配置
* 关闭系统上的防火墙或打开正确的端口。
* 服务器和所有的客户机都在同一个子网上。
* 确保JMeter可以访问服务器。
* 确保在所有系统上使用相同版本的JMeter和Java。混合版本将无法正常工作。
三、执行机(slave)的配置步骤
1、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=172.16.19.41:4000(自己电脑的IP)
修改jmeter.properties的两个参数,这两个port设置成一样的,
server_port=4000
server.rmi.localport=4000
2、修改jmeter.properties 配置文件中server.rmi.ssl.disable=true
3、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。
注意:如果脚本中使用到数据源(csv文件等),需要把数据源拷贝到所有的slave机器上,且存放的目录和master一致。
脚本可以不用拷贝,jmeter会自行把脚本分配到各个slave
四、控制机(Controller)的配置步骤
1、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.174:4000,4000是端口号,可以随意自定义。如果有多台执行机,这里需要把所有的执行机机的IP地址和端口号都加入remote_hosts进来。这里就是配置远程控制执行的内容。
2、配置Jmeter/bin/jmeter.properties
(1)server.rmi.ssl.keystore.file=rmi_keystore.jks
server.rmi.ssl.disable=true
五、控制机连接执行机
1、执行机打开jmeter服务
2、控制机进入jmeter的bin目录下,输入cmd进入命令控制台
3、输入命令
jmeter -n -t ..\testcase\HJX_TK_APP100u360s(v2.05).jmx -l ..\report\Remote2\test0802.log -R 172.160.190.410:4000 -e -o ..\report\Remote2\test0802
连接执行机并运行脚本
这个就代表连接成功并且执行脚本完毕了!!!
4.命令行的解释