缘由

准备

Slave 机器配置

1、进入 bin 目录,找到 jmeter.properties 文件,以文本形式或者 vim 打开编辑,将 server_port 以及 server.rmi.localport 前面的注释去掉,配置端口号,笔者自定义为 4001 端口(端口设置前先确保此端口号不会占用其他端口号)

2、同样在 bin 目录下,找到 jmeter-server 文件,在终端直接sh jmeter-server启动
3、不幸遇到如下报错信息

Server failed to start: java.rmi.RemoteException: Cannot start. localhost is a loopback address.
An error occurred: Cannot start. localhost is a loopback address

4、启动成功之后会打印出使用端口号

Master 机器配置

1、在 jmeter.properties 下配置 remote_hosts=xxx.xxx.xxx.xxx:端口号,多台机器之间用逗号隔开

GUI 模式

1、打开 jmeter,点击运行 - 远程机器,能看到 salve 机器

2、选择对应机器跑脚本或者启动全部,看到 slave 机器的终端有打印 log 表示运行成功 ,此时 slave 这边也会看到返回结果

无 GUI 模式

1、在 jmeter.properties 下配置jmeterengine.nongui.port=0

2、运行以下命令,192.168.2.186:5029 为 slave 机器 ip 和端口,多台机器之间用,号隔开

jmeter -n -t jmeter_test.jmx -R 192.168.2.186:5029,192.168.2.185:4001 -l test.jtl -e -o /Users/edz/Documents/jmx/report

3、控制台打印如下命令表示执行成功

4、执行成功可以看到保存的报告

遇到的问题

1、 slave 机器在启动 jmeter-server 的时候报错

Using local port: 4001
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 4001; nested exception is:
    java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
An error occurred: Listen failed on port: 4001; nested exception is:
    java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)

2、在 GUI 模式下选择远程机器报 no object 错误

3、在无 GUI 执行时,保存的文件已经存在或者目录已经有文件,则在执行时会提示

个人理解是不是已经有过一次保存之后不能再次覆盖保存,所以每次都要新建文件夹或者目录,即命令运行的时候修改保存文件名称

jmeter -n -t jmeter_test.jmx -R 192.168.2.186:5029,192.168.2.185:4001 -l test1.jtl -e -o /Users/edz/Documents/jmx/report1

类似这样


↙↙↙阅读原文可查看相关链接,并与作者交流