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

JMeter全自动阶梯压力测试流程(使用普通线程组)

专业的全自动阶梯压力测试流程(使用普通线程组)

基于之前的分析,以下是一个符合专业标准的阶梯测试方案,修正了启动延迟计算、阶梯顺序、Ramp-Up 比例等问题。


一、阶梯测试设计原则(专业标准)

原则说明
阶梯顺序冒烟 → 负载 → 峰值 → 压力 → 浸泡(峰值在压力前,避免过载影响峰值结果)
启动延迟公式延迟 = 前面所有阶梯的(持续时间 + Ramp-Up)之和 + 缓冲时间(5~10秒)
Ramp-Up 占比占持续时间的 10%~30%(浸泡测试可适当降低)
缓冲时间每阶梯结束后增加 5~10 秒,确保线程完全停止
持续时间包含 Ramp-Up + 稳定运行时间(Hold)

二、5 个阶梯的详细参数

阶梯名称测试类型线程数Ramp-Up(s)持续时间(s)稳定运行时间(s)Ramp-Up占比
1Step1_Smoke冒烟测试5130293.3%
2Step2_Load负载测试10060180017403.3%
3Step3_Spike峰值测试10003030027010%
4Step4_Stress压力测试50012090078013.3%
5Step5_Soak浸泡测试5060028800282002.1%

浸泡测试 Ramp-Up 设为 600 秒(10分钟),更真实模拟用户逐渐上线。


三、启动延迟计算(含缓冲)

设缓冲时间BUFFER = 5秒。

计算公式

text

延迟(N) = Σ(前N-1个阶梯的 (持续时间 + Ramp-Up)) + (N-1) * BUFFER

详细计算表

阶梯前序总时长缓冲累加启动延迟(秒)计算式
10000
2(30+1)=3153631 + 5
331 + (1800+60)=18911019011891 + 10
41891 + (300+30)=22211522362221 + 15
52221 + (900+120)=32412032613241 + 20

阶梯3 的延迟 1901 秒 ≈ 31.7 分钟,阶梯4 延迟 2236 秒 ≈ 37.3 分钟,阶梯5 延迟 3261 秒 ≈ 54.4 分钟。


四、完整测试计划结构

yaml

测试计划: 专业阶梯压力测试 全局配置: ├── 用户定义的变量 │ ├── BASE_URL: api.example.com │ ├── PROTOCOL: https │ ├── PORT: 443 │ └── AUTH_TOKEN: Bearer xxxxx ├── HTTP请求默认值 │ ├── 协议: ${PROTOCOL} │ ├── 服务器: ${BASE_URL} │ └── 端口: ${PORT} └── HTTP信息头管理器 └── Content-Type: application/json 阶梯1: Step1_Smoke (冒烟测试) 线程组: 名称: Step1_Smoke 线程数: 5 Ramp-Up: 1 秒 循环次数: 永远 调度器: ✅ 持续时间: 30 秒 启动延迟: 0 秒 HTTP请求: (你的API) 阶梯2: Step2_Load (负载测试) 线程组: 名称: Step2_Load 线程数: 100 Ramp-Up: 60 秒 循环次数: 永远 调度器: ✅ 持续时间: 1800 秒 启动延迟: 36 秒 HTTP请求: (你的API) 阶梯3: Step3_Spike (峰值测试) 线程组: 名称: Step3_Spike 线程数: 1000 Ramp-Up: 30 秒 循环次数: 永远 调度器: ✅ 持续时间: 300 秒 启动延迟: 1901 秒 HTTP请求: (你的API) 阶梯4: Step4_Stress (压力测试) 线程组: 名称: Step4_Stress 线程数: 500 Ramp-Up: 120 秒 循环次数: 永远 调度器: ✅ 持续时间: 900 秒 启动延迟: 2236 秒 HTTP请求: (你的API) 阶梯5: Step5_Soak (浸泡测试) 线程组: 名称: Step5_Soak 线程数: 50 Ramp-Up: 600 秒 循环次数: 永远 调度器: ✅ 持续时间: 28800 秒 启动延迟: 3261 秒 HTTP请求: (你的API) 监听器: ├── 聚合报告 (每个阶梯单独一个,命名区分) ├── 用表格查看结果 (可选) └── 查看结果树 (仅调试)

五、专业配置的注意事项

5.1 为什么峰值测试在压力测试之前?

  • 压力测试(500用户)可能已使系统过载,之后再做峰值(1000用户)会受到前序过载的影响(连接池、缓存、CPU升温),测不出真实的突发流量承受能力。

  • 正确顺序:负载(正常)→ 峰值(突发)→ 压力(极限)→ 浸泡(长稳)

5.2 为什么浸泡测试的 Ramp-Up 要 600 秒?

  • 长时间测试需要平滑加载,避免启动瞬间对系统造成额外冲击。

  • 600 秒加载 50 用户,每秒仅增加 0.08 个用户,几乎无感知。

5.3 缓冲时间的作用

  • 防止前一个阶梯的线程因网络延迟或 JMeter 停止慢而残留,导致下一个阶梯启动时并发数不准。

  • 5 秒通常足够;如果系统停止线程较慢,可增加到 10 秒。

5.4 如何验证阶梯不重叠?

  • 用表格查看结果中,按Start Time排序,观察每个阶梯的请求时间范围是否独立。

  • 阶梯1 的时间范围:0 ~ 31 秒
    阶梯2 的时间范围:36 ~ 36+1800+60 = 1896 秒
    没有重叠。


六、执行命令

bash

# 调试(GUI 模式,先调通一个阶梯) jmeter -t professional_steps.jmx # 正式执行(非 GUI 模式) jmeter -n -t professional_steps.jmx -l result.jtl -e -o report/ # 后台运行(适合长时间浸泡) nohup jmeter -n -t professional_steps.jmx -l result.jtl -e -o report/ > run.log 2>&1 &

七、结果分析重点

运行结束后,分别查看每个阶梯的聚合报告,对比:

阶梯关注点
冒烟脚本正确性,响应时间基准
负载正常负载下的 p95、TPS、错误率
峰值突发流量下响应时间是否陡增,错误率是否 <1%
压力找到拐点(响应时间翻倍、TPS 平头、错误率>1%)
浸泡长时间运行内存是否泄漏,TPS 是否下降

八、总结

这个专业阶梯测试方案具有以下特点:

  • ✅ 顺序合理(峰值在压力前)

  • ✅ 启动延迟公式正确(包含 Ramp-Up 和缓冲)

  • ✅ Ramp-Up 占比符合专业比例

  • ✅ 浸泡测试采用长加载时间

  • ✅ 一次运行,全自动完成 5 个阶梯

http://www.cnnetsun.cn/news/1957042.html

相关文章:

  • FDTD进阶指南:Lumerical脚本精讲之仿真区域与网格优化(四)
  • 如何高效管理Windows右键菜单:ContextMenuManager专业指南
  • Pixel Dimension Fissioner 企业级CI/CD流水线设计:从代码到部署
  • MiniCPM-V-2_6优化指南:提升推理速度,降低内存占用
  • XUnity自动翻译器:5分钟打造你的专属中文游戏世界
  • Cursor Rules 概念、编写与接入指南
  • 动手学深度学习(二十八)——微调实战:从理论到高效调参
  • 零代码基础:用Retinaface+CurricularFace镜像快速实现人脸相似度计算
  • Qwen3-0.6B-FP8高算力适配:RTX 4090D上FP8推理性能优化教程
  • 用于显示器防眩光面板的板材有哪些尺寸?采购前必须确认这几点
  • 基于logcat日志查找卡顿
  • 万象视界灵坛环境部署:OpenShift平台容器化部署与RBAC权限控制
  • Element-UI表单进阶:精准校验单个与多个字段的实战指南
  • 深入Transformer架构:利用Mirage Flow解析与可视化模型注意力机制
  • C语言存在的问题及Zig语言如何改进,差异对比全在这
  • 6 文件保存功能优化
  • 解读核心Maintainer观点|Presto 不只是版本升级!从查询引擎到湖仓执行层,AI Infra 新方向
  • 解析CSV文件处理中的常见问题与解决方案
  • 为什么你的浏览器下载需要Motrix WebExtension?终极效率提升指南
  • Visual C++运行库终极解决方案:三步告别DLL缺失烦恼
  • 通义千问2.5-7B-Instruct新手入门:无需代码基础搭建智能对话系统
  • S2-Pro大模型VMware虚拟机Ubuntu环境配置一站式指南
  • Wan2.2-I2V-A14B开发者指南:基于API封装私有视频生成SaaS服务
  • Qwen3.5-9B零基础部署:5分钟本地跑通,笔记本也能玩转原生多模态
  • Pixel Epic · Wisdom Terminal 物联网(IoT)后端开发:处理海量传感器数据的智能分析平台
  • 写HTML就能出视频?HyperFrames安装使用教程及资源分享
  • Pixel Couplet Gen惊艳案例:海外华人社区用Pixel Couplet Gen传播春节文化
  • Golang go mod vendor怎么用_Golang vendor教程【必备】
  • Z-Image Turbo实战指南:4步生成高清图像全流程
  • 告别虚拟机黑窗口:VSCode Remote-SSH直连OpenEuler 20.03 LTS开发环境搭建全记录