Jmeter-负载测试

目录

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

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.rhkb.cn/news/42767.html

    如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    【新手初学】读取数据库数据

    利用注入点让SQL注入语句执行读取数据库数据相关的操作&#xff01; 以下均以pikachu靶场的字符型注入为例进行介绍说明 一、读取用户名&#xff0c;数据库版本信息 在原URL后面添加如下代码&#xff1a; union select user(),version(&#xff09;-- 效果&#xff1a; 补…

    Ubuntu与Windows之间相互复制粘贴的方法

    一、打开Ubuntu终端 二、卸载已有的工具 sudo apt-get autoremove open-vm-tools 三、安装工具 sudo apt-get install open-vm-tools-desktop 四、重启 直接输入reboot 注&#xff1a;有任何问题欢迎评论区交流讨论或者私信&#xff01;

    免去繁琐的手动埋点,Gin 框架可观测性最佳实践

    作者&#xff1a;牧思 背景 在云原生时代的今天&#xff0c;Golang 编程语言越来越成为开发者们的首选&#xff0c;而对于 Golang 开发者来说&#xff0c;最著名的 Golang Web 框架莫过于 Gin [ 1] 框架了&#xff0c;Gin 框架作为 Golang 编程语言官方的推荐框架 [ 2] &…

    【QT】新建QT工程(详细步骤)

    新建QT工程 1.方法(1)点击new project按钮&#xff0c;弹出对话框&#xff0c;新建即可&#xff0c;步骤如下&#xff1a;(2) 点击文件菜单&#xff0c;选择新建文件或者工程&#xff0c;后续步骤如上 2.QT工程文件介绍(1).pro文件 --》QT工程配置文件(2)main.cpp --》QT工程主…

    优化MyBatis-Plus批量插入策略

    优化MyBatis-Plus批量插入策略 优化MyBatis-Plus批量插入策略一、用Mybatis-plus中的saveBatch方法二、InsertBatchSomeColumn插件1.使用前配置2.代码示例1.配置类 MybatisPlusConfig2).实体类 User3).Mapper 接口 UserMapper4).测试类 InsertBatchTest 优化MyBatis-Plus批量插…

    记一次系统单点登录、模拟web系统登录方式的开发过程,使用AES加密

    1.系统原始登录方式 访问登录页 输入账号密码登录后 2.从登录页找进去&#xff0c;从代码层面查看系统登录逻辑 常规登录方式为前端ajax请求LoginService服务-->返回200则跳转到home系统首页 查看LoginService登录逻辑 后台获取ajax传递的信息-->比较验证码-->查询…

    iPhone mini,永远再见了

    世界属于多数派&#xff0c;尽管有极少数人对 iPhone mini 情有独钟&#xff0c;但因为销量惨淡&#xff0c;iPhone mini 还是逃不开停产的命运。 据 Counterpoint 的数据&#xff0c;iPhone 12/13 mini 两代机型&#xff0c;仅占同期 iPhone 销量的 5%。 因为是小屏手机&…

    监控易一体化运维:监控易机房管理,打造高效智能机房

    在数字化浪潮中&#xff0c;企业对数据中心和机房的依赖程度与日俱增&#xff0c;机房的稳定运行成为业务持续开展的关键支撑。信息化的变迁&#xff0c;见证了机房管理从传统模式向智能化、精细化转变的过程。今天&#xff0c;就为大家深度剖析监控易在机房管理方面的卓越表现…

    概率与决策理论

    1.Q-learning Q-Learning 是一种无模型&#xff08;model-free&#xff09;强化学习算法&#xff0c;用于学习在马尔可夫决策过程&#xff08;MDP&#xff09;中的最优策略。它通过迭代更新 ​Q 值&#xff08;动作价值函数&#xff09;​ 来估计在某个状态下采取某个动作的长…

    Python 学习路线推荐

    文章目录 一、基础语法学习1.学习资源2.学习建议 二、数据处理与分析方向1. 数据处理库学习学习资源实践示例 2. 数据可视化实践示例 三、Web 开发方向1. Web 框架选择与学习学习资源实践示例 2. 前端知识补充学习资源 四、人工智能与机器学习方向1. 机器学习基础学习资源实践示…

    如何让DeepSeek-R1在内网稳定运行并实现随时随地远程在线调用

    前言&#xff1a;最近&#xff0c;国产AI圈里的新星——Deepseek&#xff0c;简直是火到不行。但是&#xff0c;你是不是已经对那些千篇一律的手机APP和网页版体验感到腻味了&#xff1f;别急&#xff0c;今天就带你解锁一个超炫的操作&#xff1a;在你的Windows电脑上本地部署…

    SpringCloud+Mybatis-Plus+Docker+RabbitMQ+Redis+Elasticsearch黑马商城

    一.MyBatis—Plus 一.快速入门 MybatisPlus介绍&#xff1a;MybatisPlus是一个基于Mybatis的增强工具库&#xff0c;旨在简化开发、提升效率&#xff0c;同时保留Mybatis的灵活性。它在Mybatis的基础上只做增强不做改变&#xff0c;引入它不会对现有工程产生影响 官网&#…

    01 相机标定与相机模型介绍

    学完本文,您将了解不同相机模型分类、内参意义,及对应的应用代码模型 标定的意义 建模三维世界点投影到二维图像平面的过程。标定输出的是相机模型。 相机模型 相机模型可以解理解为投影模型 +

    如何在 Postman 中正确设置 Session 以维持用户状态?

    在 Postman 里面设置有 session 的请求。如果你还不知道什么是 session&#xff0c;那么请看这里—— session 是一种记录客户端和服务器之间状态的机制&#xff0c;用于保持用户的登录状态或者其他数据&#xff0c;从而让用户在不同页面之间保持一致的体验。 Postman 设置带 …

    免费使用!OpenAI 全量开放 GPT-4o 图像生成能力!

    2025年3月26日&#xff0c;OpenAI正式推出GPT-4o原生图像生成功能&#xff0c;这一更新不仅标志着多模态AI技术的重大突破&#xff0c;更引发了全球AI厂商的激烈竞争。从免费用户到企业开发者&#xff0c;从创意设计到科学可视化&#xff0c;GPT-4o正在重塑图像生成的边界。本文…

    【JavaScript】八、对象

    文章目录 1、对象的声明2、对象的使用3、对象中的方法4、遍历对象5、内置对象Math 1、对象的声明 一种数据类型&#xff0c;使用typeof查看类型&#xff0c;结果是object可以详细的描述描述某个事物 声明语法&#xff1a; // 多用花括号形式声明 // 比如声明一个person对象 …

    C++指针(五)完结篇

    个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09;、C指针&#xff08;四&#xff09;万字图文详解&#xff01; 本篇博客是介…

    DataGear 企业版 1.4.0 发布,数据可视化分析平台

    DataGear 企业版 1.4.0 已发布&#xff0c;欢迎体验&#xff01; http://datagear.tech/pro/ 企业版 1.4.0 看板可视编辑模式新增了插入看板表单/面板布局、编辑图表联动、复制/粘贴、撤销/恢复等功能&#xff0c;具体更新内容如下&#xff1a; 新增&#xff1a;看板可视编辑…

    windows第十八章 菜单、工具栏、状态栏

    文章目录 创建框架窗口菜单菜单的风格通过资源创建菜单菜单的各种使用通过代码创建菜单在鼠标位置右键弹出菜单 CMenu常用函数介绍工具栏方式一&#xff0c;从资源创建工具栏方式二&#xff0c;代码创建 状态栏状态栏基础创建状态栏 创建框架窗口 手动创建一个空项目&#xff…

    局域网共享失败?打印机/文件夹共享工具

    很多时候&#xff0c;在办公或家庭环境中&#xff0c;我们需要进行打印机和文件夹的共享&#xff0c;以便更高效地协作和处理文件。然而&#xff0c;寻找对应版本的共享设置或是不想花费太多时间去进行复杂的电脑设置&#xff0c;总是让人感到头疼。今天&#xff0c;我要向大家…