当前位置: 首页 > news >正文

零基础学习性能测试第三章:jmeter性能组件应用(事件,并发,定时器)

目录

      • 一、事件监听组件:精准捕获性能数据
        • ▶ 核心监听器及作用
      • 二、并发控制组件:模拟真实用户行为
        • ▶ 核心并发组件对比
      • 三、时间控制组件:还原真实用户节奏
        • ▶ 六大定时器使用场景
      • 四、组件组合实战:电商全链路压测
        • 场景需求
        • JMeter配置架构
        • 关键配置详解
      • 五、零基础避坑指南
      • 六、性能组件速查表

掌握JMeter核心性能组件是构建真实压力场景的 关键技能。针对零基础用户,以下通过功能解析+场景化配置+避坑指南,系统化拆解三大核心组件应用:


一、事件监听组件:精准捕获性能数据

▶ 核心监听器及作用
监听器类型核心功能适用场景配置要点
聚合报告统计TPS/响应时间/错误率结果总览与达标验证保存为CSV进行二次分析
响应时间图可视化响应时间波动趋势定位性能拐点配合Filter过滤异常点
后端监听器实时写入InfluxDB+Grafana展示动态监控压测过程需部署InfluxDB+Telegraf
断言结果捕获业务逻辑错误验证接口功能正确性需配置业务断言(如检查JSON字段)

零基础配置示例(聚合报告):

  1. 右键线程组 → 添加 → 监听器 → Aggregate Report
  2. 勾选Save Table Header(保留表头)
  3. 文件名填result.csv → 格式选CSV

高阶技巧

# 过滤95%分位数超过3秒的请求(JMeter 5.4+)
jmeter -Jjmeter.reportgenerator.overall_granularity=1000 -Jjmeter.reportgenerator.report_aggregate_ranges=95:3000

二、并发控制组件:模拟真实用户行为

▶ 核心并发组件对比
组件核心能力压力模型经典使用场景
线程组基础并发用户控制线性增压/减压常规负载测试
同步定时器阻塞线程直到指定数量聚集瞬间峰值秒杀/抢购场景
吞吐量控制器控制事务执行比例比例分配混合业务流场景
Switch控制器按权重随机执行不同请求随机波动模拟用户随机操作

场景案例:电商抢购峰值模拟

线程组-5000用户
同步定时器
HTTP请求-提交订单

配置步骤

  1. 设置线程数:5000,ramp-up=1秒
  2. 添加 Synchronizing Timer
    • Number of Simulated Users:5000
    • Timeout:30000毫秒(超时后强制释放)
  3. 在定时器下添加支付请求

避坑指南

  • 若未达到目标并发:检查线程组ramp-up时间是否<定时器超时时间
  • 请求分布不均:在定时器后添加随机定时器(Random Timer)

三、时间控制组件:还原真实用户节奏

▶ 六大定时器使用场景
定时器类型延迟机制适用场景配置公式
固定定时器固定等待时间接口轮询场景Delay=5000(5秒)
高斯随机定时器正态分布随机延迟模拟人类操作间隔基础3000ms + 偏差1000ms
泊松随机定时器泊松分布随机延迟科学模拟请求到达率Lambda=0.1(单位:请求/ms)
同步定时器聚集并发后统一释放瞬时高压场景需配合线程组使用
常数吞吐量定时器精确控制每分钟请求数恒压测试Target throughput=1200(20TPS)
精准吞吐量定时器动态调整TPS(需插件)流量整形配置JSON格式的TPS曲线

用户行为模拟四步法

  1. 登录后浏览:固定定时器(5000ms)
  2. 商品搜索间隔:高斯定时器(3000±1000ms)
  3. 下单前犹豫:泊松定时器(λ=0.2)
  4. 支付操作:无延迟(模拟快速操作)

配置示例(高斯随机定时器):

Deviation (偏差): 1000  
Constant Delay Offset (基础延迟): 3000  
--> 实际延迟 = 3000ms ± 1000ms (正态分布)

四、组件组合实战:电商全链路压测

场景需求
  1. 用户比例

    • 浏览用户(40%):访问首页 → 查看商品
    • 购买用户(60%):登录 → 加购 → 支付
  2. 节奏要求

    • 每个操作后有2-5秒随机等待
    • 每天10:00有3000用户瞬间抢购
JMeter配置架构
线程组
吞吐量控制器-40%
吞吐量控制器-60%
事务控制器-浏览用户
事务控制器-购买用户
HTTP请求-首页
高斯定时器
HTTP请求-商品
高斯定时器
HTTP请求-登录
高斯定时器
HTTP请求-加购
高斯定时器
同步定时器-3000用户
HTTP请求-支付
关键配置详解
  1. 比例控制

    • 吞吐量控制器1:Percent Executions → 40%
    • 吞吐量控制器2:Percent Executions → 60%
  2. 抢购实现

    // 使用IF控制器判断是否抢购用户
    ${__jexl3("${__threadNum} % 10 < 6" && "${time}" == "10:00")}
    

    在支付请求前添加同步定时器(3000用户)

  3. 全局定时器

    • 线程组级添加高斯随机定时器(作用域覆盖所有请求)

五、零基础避坑指南

  1. 监听器导致OOM

    • 问题:压测中JMeter内存溢出
    • 解决
      • 禁用View Results Tree监听器
      • 用命令行运行:jmeter -n -t test.jmx -l result.jtl
  2. 定时器作用域错误

    • 现象:部分请求未应用延迟
    • 规则:定时器对其下方所有子组件生效
  3. 同步定时器超时失效

    • 配置Timeout > Ramp-up时间 + 单请求最大响应时间
  4. 常量吞吐量失真

    • 优化
      • 设置Calculate Throughput based on = all active threads
      • 增加线程数至目标TPS的1.2倍

最佳实践:完成配置后执行 Validate 按钮检查脚本逻辑


六、性能组件速查表

场景推荐组件组合
登录接口压测普通线程组 + 固定定时器 + 聚合报告
秒杀场景同步定时器 + 随机商品参数 + 队列断言
全链路混合业务吞吐量控制器 + 高斯定时器 + 事务控制器
24小时波动压测精准吞吐量定时器 + 后端监听器 + Grafana

下一步行动

  1. 安装插件管理包:jmeter-plugins.org
  2. 添加Custom Thread Groups3 Basic Graphs
  3. 尝试用精准吞吐量定时器配置以下曲线:
    {"0":100, "300":500, "600":200} // 第0分钟100TPS,5分钟到500TPS,10分钟降回200TPS
    

通过精准搭配事件监听、并发控制、时间控制三大类组件,可构建出无限逼近真实场景的压力模型。关键原则:简单场景用标准组件,复杂场景用插件扩展

http://www.xdnf.cn/news/1195453.html

相关文章:

  • 哈尔滨←→南昌的铁路要道
  • AWD的攻击和防御手段
  • idea中无法删除模块,只能remove?
  • 2025年7月26日训练日志
  • 最优估计准则与方法(4)最小二乘估计(LS)_学习笔记
  • 幸福网咖订座点餐小程序的设计与实现
  • element-plus安装以及使用
  • 《基于雅可比矢量近似的EIT触觉传感灵敏度非均匀校正》论文解读
  • 微分方程入门之入门之入门,纯笔记
  • 实现网页访问/接口调用KernelMemory
  • S7-200 SMART 数字量 I/O 组态指南:从参数设置到实战案例
  • Ubuntu系统 系统盘和数据盘扩容具体操作
  • C++类和对象(三)
  • Coze 与 Dify 深度对比:2025 年 AI 智能体平台选型指南
  • VMware Workstation17下安装Ubuntu20.04
  • JVM-GC 相关知识
  • 利用RAII与析构函数避免C++资源泄漏
  • Linux进程替换
  • Pinia快速入门
  • C++20 协程
  • 联表实现回显功能
  • 【Canvas与旗帜】条纹版大明三辰旗
  • 一文速通《多元函数微分学》
  • 从0到1学Pandas(七):Pandas 在机器学习中的应用
  • ART配对软件使用
  • Netty中DefaultChannelPipeline源码解读
  • Python编程:初入Python魔法世界
  • Android ADB命令之内存统计与分析
  • 暑期算法训练.9
  • flink查看taskManager日志