Jmeter-负载测试

目录

[一. 基础负载测试场景:固定并发用户数](#一. 基础负载测试场景:固定并发用户数)

1、线程组配置

2、HTTP请求配置

3、添加定时器

4、添加监听器

[4.1 聚合报告](#4.1 聚合报告)

[4.2 响应时间图](#4.2 响应时间图)

[4.3 查看结果树](#4.3 查看结果树)

5、结果分析指标

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

1、插件安装

2、阶梯配置

3、HTTP请求配置

4、监听器配置

[4.1 Active Threads Over Time:查看并发用户数变化曲线](#4.1 Active Threads Over Time:查看并发用户数变化曲线)

[4.2 Response Time Over Time:观察并发响应时间变化曲线](#4.2 Response Time Over Time:观察并发响应时间变化曲线)

[4.3 聚合报告](#4.3 聚合报告)

5、结果分析指标

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

1、插件安装

2、配置突发流量模型

3、HTTP请求配置

4、监听器配置

[4.1 Active Threads Over Time:查看并发用户数变化曲线](#4.1 Active Threads Over Time:查看并发用户数变化曲线)

[4.2 Response Time Over Time:观察并发响应时间变化曲线](#4.2 Response Time Over Time:观察并发响应时间变化曲线)

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

[4.4 Composite Graph:叠加显示RPS、响应时间、活跃线程数,定位性能拐点](#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 → 增大连接池或引入缓存

四、生成报告

命令执行

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

  • -t: 测试计划文件

  • -l: 结果日志文件

  • -e -o: 生成HTML报告

相关推荐
brucelee18617 小时前
使用 JMeter 进行 API 压力测试完整指南
jmeter·压力测试
Echoo华地20 小时前
Gatling压测案例
java·jmeter·压力测试·并发·scale·压测·gatling
橘子编程20 小时前
软件测试全流程实战指南
java·功能测试·测试工具·junit·tomcat·压力测试·可用性测试
汽车仪器仪表相关领域21 小时前
广州文明机电 新能源汽车运行安全性能检验解决方案
人工智能·功能测试·安全·单元测试·汽车·压力测试·可用性测试
chenjingming6662 天前
jmeter处理接口返回中文乱码的问题
jmeter
chenjingming6662 天前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
洛_尘2 天前
测试9:性能测试--工具篇(JMeter)
jmeter
夜晚打字声2 天前
7(七)Jmeter吞吐量设置
jmeter
chenjingming6662 天前
jmeter导入浏览器上按F12抓的数据包
前端·chrome·jmeter
爱编程的小吴5 天前
JMeter从入门到精通:一站式掌握性能测试
jmeter