当前位置: 首页 > 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.lryc.cn/news/600977.html

相关文章:

  • 大模型 vs 轻量模型:架构与使用场景对比
  • 单片机ADC机理层面详细分析(一)
  • nfls dp 刷题 题解
  • C++平衡二叉搜索树易错点
  • C++ 类型萃取:深入理解与实践
  • git推送文件失败
  • vulhub-earth靶机攻略
  • 显式等待和隐式等待的区别
  • 伟淼科技李志伟:破解二代接班传承困局,系统性方案破除三代魔咒
  • pytorch学习笔记-自定义卷积
  • Bert项目--新闻标题文本分类
  • C# 位运算及应用
  • 【简述】C++11/14/17/20/23 中的关键新特性
  • 无源域自适应综合研究【3】
  • ts-node 深入全面讲解
  • IntelliJ IDEA 的“缩短命令行”:解决长类路径的利器
  • 《Moco: Momentum Contrast for Unsupervised Visual Representation Learning》论文精读笔记
  • CentOS 7 安装 MySQL 8.4.6(二进制包)指南
  • 学习嵌入式的第三十一天-数据结构-(2025.7.23)网络协议封装
  • Houdini快速模拟烟雾
  • 从0开始学linux韦东山教程Linux驱动入门实验班(5)
  • ThreadLocal--ThreadLocal介绍
  • SGLang 核心技术详解
  • 20250726-3-Kubernetes 网络-Service三种常用类型_笔记
  • 创建 Vue 项目的 4 种主流方式
  • 嵌入式——C语言:指针②
  • 智慧城市多目标追踪精度↑32%:陌讯动态融合算法实战解析
  • 【科普】java和html和lvgl生成页面有什么区别,还有什么方法可以生成?
  • Python深入 Tkinter 模块
  • OpHReda精准预测酶最佳PH