总共两台机器,调度机(Controller)和代理机(Agent)。
1.Agent安装和Controller相同版本的jmeter,我都是安装的jmeter5.3,安装好之后启动jmeter确保jmeter能正常启动。
坑1来了:
Agent启动jmeter时报错提示:“Error: Java version
is
too low to run JMeter. Needs at least Java >= 1.8.0.
”
jmeter5需要jdk8以上版本,但打开cmd窗口,查看java的版本确实是1.8。
由于被我用来作为Agent的这台电脑是之前的开发用的,他电脑装了两个版本的jdk,一个jdk1.7,一个jdk1.8;
解决方法:进入jmeter的bin目录下选择jmeter.bat编辑,在最前面添加如下信息
set MINIMAL_VERSION=1.8.0_181
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181(自己java的路径)
set PATH=%JAVA_HOME%\bin;%PATH%
保存之后重新启动就可以了。
2.配置Agent,打开jmeter/bin目录下的jmeter.properties
server_port=1099取消注释
remote_hosts=127.0.0.1 改为remote_hosts=127.0.0.1:1099 或者是remote_hosts=Agent机的ip:1099
server.rmi.localport=1099
server.rmi.ssl.disable=false改为true,且取消注释
3.配置Controller,打开jmeter/bin目录下的jmeter.properties
server_port=1099取消注释
remote_hosts=127.0.0.1:1099,Agent机的ip:1099(如果多个Agent,同样的配置方式,以英文逗号分隔即可。)
server.rmi.ssl.disable=false改为true,且取消注释
注:如果存在端口占用的情况,端口可更改,只要Agent和Controller的端口保持一致即可;
4.执行测试:
①. 在Agent机器上打开jmeter-server.bat
②. 在Controller机器上打开jmeter脚本,点击远程启动,先启动本机127.0.0.1
坑2:如果不将server.rmi.ssl.disable=false改为true且取消注释之后,启动会出现如下图所示的报错;更改之后需要重新启动jmeter.
坑3:启动本机127.0.0.1,出现如下图所示的提示:
解决办法:Controller机器也需要启动jmeter-server.bat,启动之后,重启jmeter,127.0.0.1即可运行成功。
运行Agent机,运行成功!jmeter-server.bat窗口中出现如下图所示的
Starting the test on host xxx......
Finished the test on host xxx...... 即代表运行完成。
至此,全部远程启动均成功!!!
注:如果电脑有多余的网卡,请禁用多余的网卡,否则也会导致运行失败。
5. 需要进行压测的脚本中含有参数化时,参数化的文件需要在Agent机的相同目录下存在,如下图,Controller机上选择好参数化的文件路径之后,在Agent机上相同路径下也应存在该参数化的文件。