jmeter分布式压力测试

官网文档:

Apache JMeter 分布式测试分步(https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html#distributed-testing)

Apache JMeter:远程(分布式)测试(https://jmeter.apache.org/usermanual/remote-test.html)

一 使用分布式压力测试的原因

​ 使用jmeter进行大并发压测时,单机受限内存、CPU、网络IO,会出现服务器压力还没有上去,但压测服务器由于模拟的压力太大死机的情况。

​ 在 2-3 GHz CPU(最近的 CPU)上运行的单个 JMeter 客户端可以处理 1000-2000 个线程,具体取决于测试类型

​ 通过远程运行JMeter,可以在许多低端计算机上复制测试,从而模拟服务器上更大的负载。JMeter 客户端的一个实例可以控制任意数量的远程 JMeter 实例,并从中收集所有数据。

注意:所有服务器都运行相同的测试计划。JMeter 不会在服务器之间分配负载,每个服务器都运行完整的测试计划。因此,如果您设置 1000 个线程并拥有 6 个 JMeter 服务器,则最终会注入 6000 个线程。

二 分布式压测原理

控制器节点:运行JMeter GUI的系统,用于控制测试

工作节点:运行 jmeter-server 的系统,它从 GUI 获取命令并将请求发送到目标系统

目标:我们计划对网络服务器进行压力测试

控制器节点启动时将压测脚本分发到各个工作节点上,然后通过远程启动各个工作节点,共同向目标服务器发送请求。

测试结束以后,各个工作节点主动将压测数据回传给控制器节点,由控制器节点统一汇总数据,并输出测试报告。

注意事项:

​ 1、master(控制器节点)和各个slave(工作节点)机器必须使用同一局域网

​ 2、分布式的局域网不要太大

​ 3、最好使用网线,减少网络带宽的影响

三 分布式压测配置

(一)Jmeter分布式压测前的准备工作

1.系统上的防火墙已关闭或打开了正确的端口
2.所有客户端都位于同一子网中
3.确保JMeter可以访问服务器。
4.确保在所有系统上使用相同的JMeter混合版本将无法正常工作
5.插件要一致、csv文件要用相对路径
5.jdk 大版本要一致 java -version 大版本号要相同,小版本号可以不相同
6.RMI设置SSL或禁用它(下面有操作步骤)

(二)控制器节点配置

1进入jmeter/bin目录,打开jmeter.properties

在这里插入图片描述

2 remote_hosts 添加助攻机器ip

remote_hosts 添加助攻机器ip:端口,多个时,用英文逗号分开

3 修改server.rmi.ssl.disable=true

在这里插入图片描述

4 修改mode=Standard

–使用标准模式,开启之后,才能实时看到助攻机器的数据

在这里插入图片描述

(三)工作节点配置

1 打开jmeter.properties

进入jmeter/bin目录,打开jmeter.properties

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-alFCqbax-1669210090100)(C:\Users\yxd\AppData\Roaming\Typora\typora-user-images\image-20221123193611332.png)]

2 配置server_port

server_port=自定义一个端口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r0K1It6E-1669210090101)(C:\Users\yxd\AppData\Roaming\Typora\typora-user-images\image-20221123193903641.png)]

3 配置server.rmi.por

server.rmi.port= 与上面相同的端口

在这里插入图片描述

4 配置server.rmi.ssl.disable

server.rmi.ssl.disable=true 不开启加密认证传输

四 分布式压测执行

(一)控制器节点运行

1.Linux端

./jmeter-server -Djava.rmi.server.hostname=控制器节点地址
在这里插入图片描述

2.Windows端

jmeter-server.bat -Djava.rmi.server.hostname=控制器结点

演示限制,将控制结点(windows)的jmeter也配置成其中一个控制结点。

在这里插入图片描述

(二)控制器节点运行

1.启动单个客户端

1.点击顶部的运行
2.选择远程启动
3.选择 IP 地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-09qRJHet-1669210090104)(C:\Users\yxd\AppData\Roaming\Typora\typora-user-images\image-20221123204703655.png)]

2.启动所有客户端

1.点击顶部的运行
2.选择“远程启动全部”或使用 Ctrl + Shift + R

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DGJMSna5-1669210090105)(C:\Users\yxd\AppData\Roaming\Typora\typora-user-images\image-20221123204906868.png)]

五 jmeter限制

  1. RMI 无法在没有代理的情况下跨子网进行通信;因此,没有代理,JMeter也无法跨子网进行通信。
  2. 从 2.9 版本开始,JMeter 将所有剥离响应数据的测试结果发送到控制台,这能够减少对网络 IO 的影响。确保监视网络流量,以便此流量不会引起争用
  3. 在 2-3 GHz CPU(最近的 CPU)上运行的单个 JMeter 客户端可以处理 1000-2000 个线程,具体取决于测试类型。

六 其他

  • 1、控机器上的脚本发生变化,工作节点没有变,远程启动工作节点执行脚本时,按照最新的控机器脚本来执行
    • ===工作节点上一切行为,都是控机器的指令执行。
  • 2、有多台机器作为助攻机器时,活跃线程数,多条; 响应时间曲线,是不做任何处理,原样展示;tps曲线,原样展示。
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值