JMeter 是 Apache 的压力测试工具——模拟大量用户并发请求,测系统的承载上限和性能瓶颈。这篇快速入门:核心概念、怎么跑压测、怎么看结果。
一、解决什么问题:系统能扛多少并发
单机跑没问题 ≠ 上线能扛。压测回答三个问题:
- QPS:每秒能处理多少请求(吞吐量)
- 响应时间:一个请求平均/最慢多久返回
- 瓶颈在哪:CPU?数据库?还是接口本身慢
二、核心概念
| 概念 | 是什么 |
|---|---|
| 线程组 | 模拟并发用户(线程数 = 并发数) |
| HTTP 请求 | 压测的目标接口(URL、方法、参数) |
| 监听器 | 看结果(汇总报告、聚合报告) |
| QPS | 每秒请求数(吞吐量) |
| TP99 | 99% 的请求在多少毫秒内完成(长尾指标) |
判断标准:QPS 高 + TP99 低 = 性能好;QPS 上不去 + TP99 飙升 = 有瓶颈(常见:数据库连接池、慢 SQL、锁)。
三、跑一个压测
GUI 方式(学习和调试):
1. 新建线程组:线程数 100、Ramp-Up 10 秒(100 个用户 10 秒内陆续启动)
2. 线程组下加「HTTP 请求」:填 URL、方法(GET/POST)、参数
3. 加「汇总报告」监听器
4. 点运行,看结果CLI 方式(正式压测,无头跑):
bash
# 测试计划保存为 load_test.jmx 后
jmeter -n -t load_test.jmx -l result.jtl -e -o report/
# -n 无头模式 -l 原始结果 -e -o 生成 HTML 报告四、看结果
「汇总报告」关键列:
| 列 | 含义 |
|---|---|
| Samples | 总请求数 |
| Average | 平均响应时间(ms) |
| Error % | 错误率(>0 要查) |
| Throughput | 吞吐量(QPS) |
加压方法:线程数从 10 → 50 → 100 → 500 逐步加,看 QPS 在哪开始不涨(瓶颈点)——这就是系统的"承载上限"。
小结
- JMeter 用线程组模拟并发,测 QPS 和响应时间
- 核心指标:QPS(吞吐)、TP99(长尾)、错误率
- 逐步加压找瓶颈点:QPS 不涨 = 到顶了
- 正式压测用 CLI(
-n -t -l -e -o),GUI 只做调试
想了解瓶颈怎么定位(数据库/接口/代码),看「线上调试」(文章整理中)。
