jmeter分布式测试

前言

为了确保jmeter分布式压测的稳定性请做到一下要求

  • jdk版本master和slave完全一致
  • jmeter版本master和slave完全一致

jmeter配置

安装jdk就不做描述了,请根据jmeter的版本选择jdk。
内存配置

1.win修改./bin/jmeter.bat,mac和linux修改./bin/jmeter.sh文件,修改为如图所示:

说明:
Xms:堆初始内存
Xmx:堆最大内存
XX:MaxMetaspaceSize:为类的元数据分配的最大本地内存,默认无无穷大。
请根据自己的情况自行配置。
启动时会看到信息内存没生效,不用管,如下图所示

当我们用工具查看时其实是生效的:

分布式压测内网或者公网配置

1.配置master

配置bin/jmeter.properties

  • 查看配置文件中是否有remote_hosts配置,若不存在添加配置:remote_hosts=192.168.20.90:1199,其中192.168.20.90:1199为slave机器的地址和jmeter端口,若有多个slave可以用逗号分割,这里也可以配置为公网地址。
  • 查看配置文件中是否有client.rmi.localport配置,若没有添加client.rmi.localport=30001配置。其中30001是rmi协议时,通过slave返回信息到master的端口,不止是这一个端口,一般会自动访问三个端口,向下取,如配置了30001,那么会用到30001,30002,30003。这个配置很关键,当非局域网使用分布式压测时会需要配置防火墙开放端口就可以配置上,以防出现任务提交了,slave已经在执行了,但是master收不到结果的情况。
  • 以上配置,若存在直接修改就可以。
    配置bin/system.properties
  • 添加java.rmi.server.hostname配置,若存在就直接修改,配置为:java.rmi.server.hostname=221.235.46.12,请注意,本配置为master本机的ip,注意一条规则,在哪里装了jmeter,这个ip就配置哪个,配置公网地址和私网地址都是可行的,比如221.235.46.12就是公网地址,也可以配置为:192.168.20.81。这个配置一般在多网卡或者docker、公网等时候会需要指定,其他时候不指定可以正常使用。

备注:若无公网可以使用穿透工具。

2.配置slave

配置bin/jmeter.properties

  • 添加server_port配置,若存在直接接修改,配置为server_port=1199,端口保持跟master配置的一致。
  • 添加server.rmi.localport配置,若存在直接接修改,配置为server.rmi.localport=1199,端口保持上一项server_port一致。
  • 添加server.rmi.ssl.disable=true,若存在直接修改,本配置为关闭ssl验证,若想开启ssl验证把true修改为false,并添加证书,具体配置请善用搜索。
    配置bin/system.properties
  • 添加java.rmi.server.hostname配置,若存在就直接修改,配置为:java.rmi.server.hostname=192.168.20.90,请注意,本配置为master本机的ip,注意一条规则,在哪里装了slave,这个ip就配置哪个,配置公网地址和私网地址都是可行的,比如221.235.46.12就是公网地址,也可以配置为:192.168.20.90。这个配置一般在多网卡或者docker、公网等时候会需要指定,其他时候不指定可以正常使用。
3.防火墙配置

slave开启1199
master开启30001,30002,30003

4.启动
  • master启动:win启动./bin/jmeter.bat,mac启动./bin/jmeter.sh
  • slave:./bin/jmeter-server
  • 远程压测:
4 个赞

软件开发软件分享

现在测试技术也这么卷了吗,我都不知道jmeter都有master/slave了 :rofl:

我是开发,不过公司内部没有啥很专业的测试,所以需要开发也懂一些压测相关工作,自己做压力测试。 :melting_face:

第一次距离大佬这么近,激动。

突然想起有个哥们教过我用jmeter压测前端页面地址 :crazy_face:

这让我想起两年前,搞了几台Linux部署jmeter搞测试,一台一台太痛苦了