jmeter分布式测试

10个多月前使用jmeter 3.0 做分布式测试博客,由于jmeter版本更新不再适用,现在以此为题,重新写一篇博客,介绍jmeter 新版本5.1.1分布式方法。

jmeter 分布式性能测试需要有个前提:

前提:
1、关闭防火墙
2、所有客户端在同一个子网里面
3、服务端也和客户端在同一个子网里面
4、 jmeter 能访问服务端
5、 jmeter 版本要一致,版本不一致可能导致运行不正常
6、需要所有的jmeter 都要设置好ssl for rmi(与之前版本不一样,自动jmeter 4.0 以后,分布式通讯是通过ssl安全协议,这种协议是通过加密传输并需要证书解密)

步骤:

1、准备3台在同一个局域网内的机器,一台作为master主控机,两台作为slave 执行机
  master机器ip:192.168.1.104
  slave1 windows机器ip:192.168.1.107
slave2 centos ip:192.168.1.101
2、在3台机器上安装同样版本的jmeter (5.1.1)和 java
3、关闭slave机器的防火墙,从master 机器能ping通到slave机器上
4、在master机器上jmeter bin目录下命令行下执行命令: create-rmi-keystore.bat,执行命令过程中会询问加密因子的填写,可以随意填写。再确认信息的时候要输入“y”。
最后在:输入 <rmi> 的密钥口令,直接回车

第4步完成,会在bin目录下生成rmi_keystore.jks 文件,需要把这个文件拷贝到各个slave机上的jmeter 的bin目录下

D:\tools\apache-jmeter-5.1.1\bin>create-rmi-keystore.bat
您的名字与姓氏是什么?
  [Unknown]:  aa
您的组织单位名称是什么?
  [Unknown]:  aa
您的组织名称是什么?
  [Unknown]:  aa
您所在的城市或区域名称是什么?
  [Unknown]:  aa
您所在的省/市/自治区名称是什么?
  [Unknown]:  aa
该单位的双字母国家/地区代码是什么?
  [Unknown]:  aa
CN=aa, OU=aa, O=aa, L=aa, ST=aa, C=aa是否正确?
  [否]:  y

输入 <rmi> 的密钥口令
        (如果和密钥库口令相同, 按回车):

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore rmi_keystore.jks -destkeystore rmi_keystore.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
"Copy the generated rmi_keystore.jks to jmeter/bin folder or reference it in property 'server.rmi.ssl.keystore.file'"

jmeter分布式测试

 

5、slave1 机器进入jmeter\bin 目录,点击 jmeter-server.bat,启动jmeter remote 服务

jmeter分布式测试

 

6、slave2 机器进入jmeter\bin目录,执行如下命令启动服务:
  ./jmeter-server -D java.rmi.server.hostname=192.168.1.101

  jmeter分布式测试

 

7、master 主控机打开jmeter\bin\jmeter.properties 文件, 设置  remote_hosts 
remote_hosts=192.168.1.101:1099,192.168.1.107:1099
remote_hosts是设置jmeter slave机器ip值和端口,默认端口1099 也可以配置其他端口,(多个用逗 号隔开)  
8、master 主控机打开jmeter\bin\system.properties 文件, 设置  java.rmi.server.hostname
java.rmi.server.hostname=192.168.1.104

java.rmi.server.hostname 是设置主控机器的ip

9、设置好脚本,执行命令:jmeter -n -t case.jmx -l result -R 192.168.1.101:1099,192.168.1.107:1099
(多个用逗号隔开)  

jmeter分布式测试

执行完成,主控机器显示配置了2台远程服务,2台slave 都显示有信息,说明调用远程服务成功

Starting the test on host 192.168.1.101:1099 @ Fri May 03 00:30:19 PDT 2019 (1556868619022)
Finished the test on host 192.168.1.101:1099 @ Fri May 03 00:30:21 PDT 2019 (1556868621256) 

Starting the test on host 192.168.1.101:1099 @ Fri May 03 00:30:19 PDT 2019 (1556868619022)
Finished the test on host 192.168.1.101:1099 @ Fri May 03 00:30:21 PDT 2019 (1556868621256)

欢迎关注技术微信公众号:

jmeter分布式测试

 

上一篇:RMI加载类异常


下一篇:Java自带RPC实现,RMI框架入门