性能测试工具 [jmeter] 分布式测试实践 (GUI 模式和无 GUI 模式)

樂易 · May 17, 2019 · Last by yahty replied at May 17, 2019 · 734 hits

缘由

  • 记录一下本次实践的过程以及遇到问题,供自己以后或者他人参考

准备

  • 两台Mac机器,一台既是master又是slave;另一个单独作为slave
  • 机器都下载jmeter,且版本号一致
  • 最好jdk版本号也一致,配置好环境
  • 机器处在同一局域网下

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

  • 打开jmeter-server滑到最底下,可以看到文档有提示,修改host为本机ip,保存

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)
  • 在jmeter.properties里面配置不要使用SSL

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

  • 是因为在slave机器设置的时候server.rmi.localport和server_port端口号没有设置一致,重新设置一致保存即可

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

类似这样

共收到 1 条回复 时间 点赞
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up