Jmeter-负载测试

news/2025/4/1 6:19:35/

目录

一. 基础负载测试场景:固定并发用户数

1、线程组配置

2、HTTP请求配置

3、添加定时器

4、添加监听器

4.1 聚合报告

4.2 响应时间图

4.3 查看结果树

5、结果分析指标

二. 阶梯式加压场景(逐步增加并发)

1、插件安装

2、阶梯配置

3、HTTP请求配置

4、监听器配置

4.1 Active Threads Over Time:查看并发用户数变化曲线

4.2 Response Time Over Time:观察并发响应时间变化曲线

4.3 聚合报告

5、结果分析指标

三、峰值流量场景(突发流量冲击)

1、插件安装

2、配置突发流量模型

3、HTTP请求配置

4、监听器配置

4.1 Active Threads Over Time:查看并发用户数变化曲线

4.2 Response Time Over Time:观察并发响应时间变化曲线

4.3 聚合报告:统计错误率、平均响应时间等核心指标

4.4 Composite Graph:叠加显示RPS、响应时间、活跃线程数,定位性能拐点

5、结果分析指标

四、生成报告


一. 基础负载测试场景:固定并发用户数

场景:验证系统在预期最大并发下的稳定性,验证系统在固定并发用户数下的响应时间、吞吐量和错误率。

例如:模拟 100 用户同时访问登录接口,持续 10 分钟。

1、线程组配置

 右键“测试计划” → 添加线程组(添加 > 线程(用户) > 线程组

  • 线程数(用户数):100

  • Ramp-Up 时间:0 秒(立即启动所有线程,模拟瞬时并发)

    如果希望逐步加压后再保持并发,10 秒(用户逐步启动)
  • 循环次数:设为 Forever,通过 Scheduler 设置持续时间 600 秒(10 分钟)。

2、HTTP请求配置

右键线程组 → 添加 → 取样器→ 选择 HTTP请求

具体配置,详见文章:Jmeter-功能测试

3、添加定时器

 精确模拟瞬时并发:右键HTTP请求 → 添加 → 定时器 →同步定时器

4、添加监听器

4.1 聚合报告

右键线程组 → 添加→监听器→聚合报告

4.2 响应时间图

右键线程组 → 添加→监听器→响应时间图

4.3 查看结果树

仅调试时使用,正式压测需禁用,避免内存溢出

右键线程组 → 添加→监听器→查看结果树

5、结果分析指标

指标说明
Samples总请求数
Average RT平均响应时间(应低于业务阈值,如500ms)
Throughput每秒处理请求数(TPS),越高说明系统吞吐能力越强
Error %错误率(应接近0%,异常请求需排查原因)
90% Line (RT)90%请求的响应时间小于该值(反映长尾性能)

二. 阶梯式加压场景(逐步增加并发)

场景:逐步增加并发用户数,观察系统性能拐点(如响应时间陡增、错误率上升),确定系统能承受的最大并发用户数。

例如:每 2 分钟增加 50 用户,直到达到 300 用户,持续5分钟。

1、插件安装

安装插件管理器:JMeter Plugins Manager  具体安装步骤:略

选项-->Plugins Manager-->Available Plugins-->搜索并安装 Concurrency Thread Group、3 Basic Graphs

2、阶梯配置

 右键“测试计划” → 添加线程组(添加 > 线程(用户) > Stepping Thread Group)

  • 关键参数

    • This group will start 100 threads:总线程数(如100用户)

    • First, wait for 0 seconds:启动前等待时间

    • Then start 10 threads:初始并发用户数

    • Next, add 10 threads every 60 seconds:每60秒增加10用户

    • Using ramp-up 10 seconds:每次新增用户的启动时间

    • Then hold load for 300 seconds:达到最大并发后持续300秒

    • Finally, stop 5 threads every 1 seconds:释放线程速度(可选)

3、HTTP请求配置

右键线程组 → 添加 → 取样器→ 选择 HTTP请求

具体配置,详见文章:Jmeter-功能测试

4、监听器配置

4.1 Active Threads Over Time:查看并发用户数变化曲线

右键线程组 → 添加→监听器→Active Threads Over Time

4.2 Response Time Over Time:观察并发响应时间变化曲线

右键线程组 → 添加→监听器→Response Time Over Time

4.3 聚合报告

右键线程组 → 添加→监听器→聚合报告

5、结果分析指标

5.1 响应时间趋势

当并发增加时,响应时间是否线性增长?是否存在突增拐点?

5.2 吞吐量曲线

吞吐量是否随并发增加而上升?到达某一点后是否趋于稳定?

5.3 错误率变化

高并发阶段是否出现超时(如HTTP 504)或业务错误(如HTTP 500)?

三、峰值流量场景(突发流量冲击)

场景:模拟短时间内的高并发请求(如秒杀活动),测试系统抗突发流量能力。

        例如:在 10 秒内启动 1000 用户访问下单接,保持30秒高并发。

1、插件安装

安装插件管理器:JMeter Plugins Manager  具体安装步骤:略

选项-->Plugins Manager-->Available Plugins-->搜索并安装 Custom Thread Groups、3 Basic Graphs、Composite Timeline Graph

2、配置突发流量模型

右键“测试计划” → 添加线程组(添加 > 线程(用户) > Ultimate Thread Group)

  • 关键参数

    Start Threads Count: 1000   (突发并发用户数)
    Initial Delay (sec): 0      (立即启动)
    Startup Time (sec): 10       (10秒内启动所有线程)
    Hold Load (sec): 30         (保持30秒高并发)
    Shutdown Time (sec): 10      (10秒内停止所有线程)

3、HTTP请求配置

右键线程组 → 添加 → 取样器→ 选择 HTTP请求

具体配置,详见文章:Jmeter-功能测试

4、监听器配置

4.1 Active Threads Over Time:查看并发用户数变化曲线

右键线程组 → 添加→监听器→Active Threads Over Time

4.2 Response Time Over Time:观察并发响应时间变化曲线

右键线程组 → 添加→监听器→Response Time Over Time

4.3 聚合报告:统计错误率、平均响应时间等核心指标

右键线程组 → 添加→监听器→聚合报告

4.4 Composite Graph:叠加显示RPS、响应时间、活跃线程数,定位性能拐点

右键线程组 → 添加→监听器→Composite Graph

5、结果分析指标

指标健康标准异常排查建议
错误率(Error %)<1%检查服务器日志、数据库连接池、限流配置
平均响应时间(RT)符合业务SLA(如≤2秒)分析慢查询、GC停顿、网络带宽瓶颈
吞吐量(Throughput)接近系统理论最大值检查CPU/内存是否饱和、是否有锁竞争
活跃线程数与配置的突发线程数一致JMeter客户端资源是否充足

典型问题定位

  • 大量504 Gateway Timeout

    • 后端服务处理超时 → 优化SQL或增加服务超时阈值。

  • 频繁429 Too Many Requests

    • 触发限流 → 验证限流阈值是否合理,或扩容服务节点。

  • 数据库连接池耗尽

    • 错误日志显示Cannot get a connection → 增大连接池或引入缓存

四、生成报告

命令执行

jmeter -n -t testplan.jmx -l result.jtl -e -o report/
  • -n: 无GUI模式

  • -t: 测试计划文件

  • -l: 结果日志文件

  • -e -o: 生成HTML报告


    http://www.ppmy.cn/news/1584122.html

    相关文章

    利用GitHub Pages快速部署前端框架静态网页

    文章目录 前言GitHub Pages 来部署前端框架&#xff08;Vue 3 Vite&#xff09;项目1、配置 GitHub Pages 部署2、将项目推送到 GitHub3、部署到 GitHub Pages4、访问部署页面5、修改代码后的更新部署顺序 前言 可以先参考&#xff1a; 使用 GitHub Pages 快速部署静态网页: …

    Qt中QApplication::processEvents()详细讲解

    QApplication::processEvents(); 是 Qt 框架中的一个关键函数&#xff0c;用于手动处理当前线程的事件队列。以下是其详细解释及使用场景&#xff1a; 1.作用 1.1处理挂起的事件 在默认情况下&#xff0c;Qt 的事件循环&#xff08;通过 QApplication::exec() 启动&#xff…

    SpringBoot3解决跨域请求问题(同源策略、JSONP、CORS策略)(Access-Control-Allow-Origin)(2025详细教程)

    目录 浏览器跨域请求问题。 浏览器同源策略。 第三方API调用。 前后端分离项目。 一、JSONP。&#xff08;dataType:jsonp&#xff09; &#xff08;1&#xff09;代码示例。 <1>前端ajax04.jsp页面。(发起Ajax请求) <2>后端springboot接口。(/hello)(返回JSONPObj…

    “立正挨打”之后,黄仁勋正式公布英伟达的量子计算应对战略

    内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨浪味仙 行业动向&#xff1a;4500字丨13分钟阅读 当 14 位量子计算企业高管聚集在同一个讨论会上&#xff0c;为各自公司的生存和技术选择辩护时&#xff0c;会发生什么&…

    【软考备考】系统架构设计论文完整范文示例

    本文由AI辅助创造 题目:基于微服务与云原生的智慧政务平台架构设计与实践 摘要(约300字) 本文以某省级智慧政务平台建设项目为背景,针对传统政务系统存在的"信息孤岛"、扩展性差、维护成本高等问题,提出了一套基于微服务与云原生技术的解决方案。通过领域驱动…

    Flutter环境配置

    配置环境变量 PUB_HOSTED_URLhttps://pub.flutter-io.cnFLUTTER_STORAGE_BASE_URLhttps://storage.flutter-io.cn 这个命令是用来配置 Flutter 的镜像源地址&#xff0c;主要是为了解决在中国大陆地区访问 Flutter 官方资源较慢的问题。 具体的操作如下&#xff1a; 右键点…

    LabVIEW IMAQdx相机接口重命名

    错误代码0xBFF6902E表明在尝试重命名相机接口时存在名称冲突或无效命名。根据系统配置信息&#xff0c;可能原因包括&#xff1a; 隐藏的残留配置&#xff1a;已卸载的相机接口未完全清除配置。 命名规则冲突&#xff1a;新名称与现有设备或保留关键字重复。 驱动兼容性问题&…

    重大SBOM风险预警 | 总下载量超百万次开源NPM组件被投毒

    SBOM情报概述 近日&#xff08;2025.03.25&#xff09;&#xff0c;悬镜供应链安全情报中心在NPM官方仓库&#xff08;www.npmjs.com&#xff09;中捕获1起针对全球知名薪酬数据统计平台 PayScale 旗下开源NPM组件 country-currency-map的供应链投毒事件。country-currency-ma…