使用 JMeter 进行 API 压力测试完整指南

JMeter 是一款非常强大的压测工具,广泛用于接口测试、性能测试和压力测试。本文将从配置方法 + 参数解释 + 报告生成完整讲解如何使用 JMeter 进行压测。


🧩 一、JMeter 压测的核心结构

一个完整的 JMeter 测试计划包含:

复制代码
Test Plan(测试计划)
 ├── Thread Group(线程组)
 │    ├── Sampler(请求)
 │    ├── Listener(监听器)
 │    └── Config / Timer / Assertion(可选)

⚙️ 二、核心配置:Thread Group

路径:

复制代码
Test Plan → Add → Threads (Users) → Thread Group

🔵 1. Number of Threads(线程数)

👉 表示并发用户数

例如:

复制代码
1000 Threads = 1000 个并发用户

📌 作用:

  • 模拟同时访问系统的用户数

  • 直接影响系统压力大小


🔵 2. Ramp-Up Period(启动时间)

👉 表示线程启动的时间(单位:秒)

公式:

复制代码
Ramp-Up = Threads × 0.1 ~ 0.3

示例:

Threads 推荐 Ramp-Up
100 10 ~ 30 秒
300 30 ~ 90 秒
500 50 ~ 150 秒
1000 100 ~ 300 秒

👉 每秒启动:

复制代码
1000 / 100 = 10 用户/秒

📌 作用:

  • 控制压力增长速度

  • 避免瞬间压垮系统

  • 更接近真实用户行为


🔵 3. Loop Count(循环次数)

👉 每个线程执行多少次请求


示例:

复制代码
线程数:100
循环次数:10

👉 总请求数:

复制代码
100 × 10 = 1000 请求

Loop 设置:

设置 含义
10 每个线程执行10次
Forever 一直循环(用于长时间测试)

📌 作用:

  • 控制总请求量

  • 影响测试持续时间


📡 三、添加接口请求(Sampler)

路径:

复制代码
Thread Group → Add → Sampler → HTTP Request

示例配置:


🔐 四、添加请求头(Header)

路径:

复制代码
Add → Config Element → HTTP Header Manager

添加:

复制代码
Content-Type: application/json
Authorization: Bearer xxx

📊 五、添加监听器(结果分析)

路径:

复制代码
Add → Listener

推荐添加:


1️⃣ Summary Report(汇总报告)

👉 查看:

  • 平均响应时间

  • 吞吐量(RPS)

  • 错误率


2️⃣ Aggregate Report(聚合报告)

👉 更详细:

  • P90 / P95 / P99

  • 最大响应时间

  • 吞吐量


3️⃣ View Results Tree(调试用)

👉 查看:

  • 请求/响应内容

  • 错误信息

⚠️ 不适合高并发测试


📈 六、JMeter 中的关键指标


🔵 Throughput(吞吐量)

👉 就是 RPS(每秒请求数)


🔵 Average(平均响应时间)

👉 系统整体响应速度


🔵 Percentiles(P95 / P99)

👉 95% / 99% 用户的响应时间


🔵 Error %

👉 请求失败比例


🚀 七、如何执行压测


GUI模式

直接点击:

复制代码
Start ▶

CLI模式(推荐)

复制代码
jmeter -n -t test.jmx -l result.jtl -e -o report

📄 八、生成 HTML 报告(重点)

JMeter 最强功能之一 👉 自动生成 HTML 报告


命令:

复制代码
jmeter -n -t test.jmx -l result.jtl -e -o report

参数说明:

参数 作用
-n 非GUI模式
-t 测试计划
-l 保存结果文件
-e 生成报告
-o 输出目录

📊 报告内容:

打开:

复制代码
report/index.html

你会看到:

  • 📈 RPS(吞吐量)

  • ⏱ 响应时间曲线

  • 📊 Percentiles

  • ❌ 错误率

  • 🧠 时间趋势图


🧠 九、推荐压测策略(非常重要)


🔵 Ramp-Up 压测

复制代码
Threads: 1000
Ramp-Up: 300 秒
Loop: 1

👉 逐步增加压力


🔵 稳定负载

复制代码
Threads: 500
Ramp-Up: 60 秒
Loop: 10

👉 长时间稳定运行


🔵 压力测试(极限)

复制代码
Threads: 2000
Ramp-Up: 60 秒
Loop: 1

👉 找系统崩溃点


🔵 Soak 测试(长时间)

复制代码
Threads: 300
Ramp-Up: 120 秒
Loop: Forever

👉 测试稳定性 & 内存泄漏


⚠️ 十、常见错误

❌ Ramp-Up 设为 0(瞬间压垮系统)

❌ 线程数过大(机器扛不住)

❌ 忽略 P99 指标

❌ GUI 模式跑高并发

❌ 没有监控 CPU / 内存


🔥 十一、最佳实践

✔ 使用 CLI 模式执行

✔ 分阶段压测(不要一次拉满)

✔ 关注 P95 / P99

✔ 结合监控(CPU / 内存 / 网络)

✔ 使用真实业务参数


🎯 总结

JMeter 压测的核心就是:

👉 控制并发(Threads) + 控制增长(Ramp-Up) + 控制请求量(Loop)

最终目标:

  • 找出系统极限

  • 发现性能瓶颈

  • 确保系统稳定


相关推荐
Amir_zy1 天前
Redis测试方法全攻略:冒烟、压测与稳定性验证
redis·压力测试
孫治AllenSun4 天前
【Jmeter】项目压测流程案例
jmeter
是吕先森8 天前
【jmeter】简单应用
jmeter
Hy行者勇哥9 天前
Coze 搭建【软件测试助手 Skill】可行分析及操作实践
测试工具·压力测试
执笔画流年呀9 天前
【性能测试】Jmeter下载安装、环境配置-小白使用手册
jmeter
颜挺锐10 天前
JMeter TCP 取样器 行尾字节值是 62,是代表的什么意思?
网络协议·tcp/ip·jmeter
软件测试媛11 天前
软件测试面试问题汇总
功能测试·面试·职场和发展·压力测试
汽车仪器仪表相关领域12 天前
NHA-604/605汽车排放气体测试仪:00级国标计量|多动力车型兼容|移动/固定双工况|智能联网尾气检测设备
大数据·人工智能·功能测试·安全·汽车·压力测试·可用性测试