原理:
1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行
的。
3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
前提:
a.jmeter的controller机器和agent机器在同一个网段内
b.可以相互ping通
c.jmeter在controller机器和agent机器环境配置正确,可正常使用
本次Jmeter分布式测试操作,选择我自己电脑作为控制机,别人电脑作为执行机,步骤如下:
1.首先确保两台电脑的jmeter版本以及java版本尽量保持一致
2. 两台电脑在同一局域网下,使用ipconfig查看两台电脑ip,两台电脑ip可以ping通,如果ping不同可能是防火墙打开原因,可以将防火墙关闭
3. 在自己电脑上,修改jmeter路径bin目录下的配置文件jmeter.properties,修改文件中的remote_hosts部分,填上别人的电脑ip和端口号,因为自己的电脑既是控制机又是执行机,所以也需要填写自己电脑的ip和端口号,端口号默认是1099
4.在别人电脑上,修改jmeter路径bin目录下的配置文件jmeter-server中的RMI_HOST_DEF部分内容(自己电脑上不需要修改这一步)
RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(这里写上自己电脑的ip),需要去掉前面的“#”注释
5. 在别人电脑上,找到bin目录下的jmeter.properties 文件(自己电脑不需要修改)
修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disable=true前的#)保存后,再重新启动jmeter-server.bat
如果没有修改这一步会导致调用报错: java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
6. 自己电脑和别人电脑同时执行任务,两台电脑都需要各自启动jmeter-server.bat
7. 在jmeter上选择运行>远程启动选项下,出来了两台电脑的ip和端口号
8.两台电脑同时压测 (如果有参数化的时候,两台电脑下都需要放参数文件)
线程数设置为5,选择远程启动所有,一共有10条线程
9.两台电脑的jmeter-server.bat 控制台会打印出执行开始时间和结束时间