Jmeter实现分布式并发,即使用远程机执行用例。
环境: VMware Fusion
Windows系统是win7。
操作过程
1、Master在jmeter.properties添加remote_hosts
2、Slave在jmeter.properties添加server_port
同时把remote_hosts修改为和主机(Master)一样
3、Slave启动jmeter-server
jmeter-server -Djava.rmi.server.hostname=192.168.0.102
注:192.168.0.102是你的虚拟机Ip
这里直接说正确的做法了。如果你执行的是jmeter-server,那后面会报错。
这时候在Master上选择远程执行,就会有远程选项了。
解决报错一:启动jmeter-server报错
意思就是找不到rmi_keystore.jks这个文件。如果你版本早的话应该不会报这个错。
解决方法:
你的Jmeter/bin目录下有个create-rmi-keystore.bat文件,在命令行中执行这个文件
create-rmi-keystore.bat
然后就可以生成这个rmi_keystore.jks文件了。而且发现Jmeter server也成功启动了。
再次执行,仍然报错:
解决
在master和salve的jmete.properies中打开找到
#server.rmi.ssl.disable=false
给变更成
server.rmi.ssl.disable=true
(注意是控制器和压力机都要更改)
重启。
可是无论怎么执行,Master都没有返回结果,似乎也没有执行,因为查看结果树里面是空的。用了两个小时,终于解决了,其实就是把那个rmi_keystore.jks复制到你的Master Jmeter/bin的文件夹下,就解决了。
执行以后如果没有Response data就打开jmeter.properties文件,找到mode=Standard,去掉前面的#,重新启动jmeter
最后强调一下,每次你修改完jmeter.properties都要重启jmeter。
整个过程百度了很多次,网上的解决办法也是多种多样让人头疼,还有说要禁用VMware网卡,这些我都没有理会。
总结一下
1、修改Master和Slave机的remote_hosts
2、修改Master和Slave机的jmeter.properties
1、修改
server.rmi.ssl.disable=true
2、打开
mode=Standard
server_port=1099
3、把生成的rmi_keystore.jks文件复制到Master【这个应该生成了就复制过去比较好】
然后在Slave端打开服务:
jmeter-server -Djava.rmi.server.hostname=Slave的IP地址
在Master端打开jmeter即可。Master端直接运行jmeter就行,不需要加参数。