(1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。
然后运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.20.109 和192.168.20.115 作为agent),必须要运行,否则controller无法远程启动所有负载机
(2)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件: 查找: remote_hosts=127.0.0.1 修改为: remote_hosts=192.168.0.109:1099,192.168.0.115:1099
这里要特别注意端口,1099为jmeter的controller 和agent 之间进行通信的默认RMI端口号,
运行bin目录下的jmeter-server可以看到使用的端口就是1099,如果要修改端口需要放开注释的端口代码,然后去修改
另外还要留意agent的机子是否开启了防火墙等。
(3)启动controller 机子上的jmeter应用,选择菜单“运行”--->“远程启动”,来分别启动agent ,也可以直接选择“远程全部启动”来将所有的agent启动。
常规操作如上。
遇到的问题
Connection refused to host: 192.168.20.115; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
解决步骤
首先我们尝试去telnet 负载机,查看是否可以成功链接上,命令如下
telnet 192.168.20.115:1099
如果得到的结果是 -bash: telnet: command not found,证明负载机链接失败。
然后执行如下操作
在命令行跳转到jmeter的bin目录下
cd /Users/long/Desktop/apache-jmeter-3.2/bin/(这个是本机的jmeter的bin目录)
然后执行如下命令
./jmeter-server -Djava.rmi.server.hostname=192.168.20.109(这个是本机的ip地址)
这时候再去尝试
telnet 192.168.20.115:1099
就会得到如下的结果
从拒绝变为了成功链接,这时候就可以执行远程启动所有负载机的操作了
证明已经成功了,
这时候从控制机上远程启动所有的负载机就会成功执行,本机也会看到启动的日志