Jmeter分布式压力测试

1、场景

在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。

例如4C8G的window server机器,使用UI方式,最高压测在1800并发(RT 20ms以内)左右。如果对于XML文件进行解析,更容易吃CPU,并发数会更低。

当单台机器不能支持更大的并发时需要考虑分布式压力测试。

2、原理

原理图如下:

  • Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)
  • master通过GUI界面启动slave机器,将jmeter压测发送给每台启动的slave
  • slave启动jmeter-server,获得脚本后开始执行
  • slave执行完成后将结果传回给master,master收集整合显示

3、注意事项

1.关闭防火墙和杀毒软件,开放端口

$ service firewalld stop

$ service iptables stop

2.所有机器最好在同一个子网上

可以使用ping命令进行检查

3.所有机器中最好使用相同版本的jdk和jmeter

4.禁用SSL

如果在启动jmeter-server.bat 时出现如下错误,则SSL没有禁用

禁用方法,jmeter.properties文件下查找server.rmi.ssl.disable,取消注释,并将其值修改为true:server.rmi.ssl.disable=true

4、slave配置

在slave机器中,启动bin目录下的 jmeter-server.bat,如下图:

启动后的ip和port为:192.168.10.131:50043

当然启动时端口也是可以自定义的。

在slave机器的 Jmeter的bin目录下,修改jmeter.properties文件下的server_port和server.rmi.localport两个配置项。比如修改为1000:

server_port=4444

server.rmi.localport=4444

启动后的ip和port为:192.168.10.131:4444

5、master配置

在master机器的 Jmeter的bin目录下,修改jmeter.properties文件下的remote_hosts项,添加IP和port,多台slave的情况下,使用逗号(,)进行分割。

完成配置后启动master机器上的 jmeter。

在Run>>Remote Start下可以查看配置的remote_hosts项。

注意:如果jmeter已经启动,修改jmeter.properties文件后需要重启jmeter配置项才可以生效。

6、脚本执行

新建一个线程组,线程组下添加一个debug sampler调试采样器和一个树结构监听器

将debug sampler重新命名为:${__machineIP()} ,该函数的意思是获取执行机器的ip

通过菜单栏的开始按钮运行脚本

通过 Run>>Remote Start>>192.168.10.131:4444运行脚本

如果要同时在所有的 slave 机器上运行,则通过 Run>>Remote Start All 执行脚本

**注意:**在分布式执行中,master向slave发送测试计划时不会将外部文件一起发送。所以在测试中如果使用csv等外部文件进行参数化,则需要把参数文件在每台slave上拷贝一份,最好都放置在bin目录下,因为Jmeter会直接从bin目录下查找。

相关推荐
ZePingPingZe1 小时前
分布式、Spring Boot微服务、垂直拆分、水平拆分、分库分表详解及关系梳理
分布式·架构
Blossom.1183 小时前
RLHF的“炼狱“突围:从PPO到DPO的工业级对齐实战
大数据·人工智能·分布式·python·算法·机器学习·边缘计算
小坏讲微服务9 小时前
Spring Cloud Alibaba整合 Kafka 的完整实现
分布式·spring cloud·kafka·消息队列·springboot·linq
zl97989910 小时前
RabbitMQ-延迟队列
分布式·rabbitmq
程序员三藏11 小时前
软件测试之压力测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
-大头.11 小时前
深入解析ZooKeeper核心机制
分布式·zookeeper·wpf
s***45314 小时前
【RabbitMQ】超详细Windows系统下RabbitMQ的安装配置
windows·分布式·rabbitmq
jinxinyuuuus14 小时前
Info Flow:分布式信息采集、数据去重与内容分级的工程实现
人工智能·分布式·程序人生·生活
2501_916007471 天前
iOS 压力测试的工程化体系,构建高强度、多维度、跨工具协同的真实负载测试流程
android·ios·小程序·uni-app·cocoa·压力测试·iphone
WHFENGHE1 天前
输电线路分布式故障定位在线监测装置:技术解析与实际应用价值
分布式