JMeter 完整入门保姆级教程(2025-2026 最新实用版)
这是一份尽量写得详细、步骤清晰、几乎零基础也能跟着做的 JMeter 入门教程。
第一部分:JMeter 到底是什么?能干什么?
JMeter 的最核心定位是:
- 开源、免费 的性能测试工具(Apache 项目)
- 主要用于 Web 应用 的压力测试 / 并发测试 / 性能测试
- 也可以做接口功能测试、数据库测试、FTP 测试、JMS、LDAP、邮件服务器测试等
最常见的几种使用场景:
| 场景 | JMeter 是否合适 | 典型指标关注点 | 难度 |
|---|---|---|---|
| 单个接口压测 | 非常合适 | TPS、响应时间、错误率 | ★☆☆☆☆ |
| 登录 → 购物车 → 下单 全链路 | 非常合适 | 整条链路 TPS、90%/99% 响应时间 | ★★★☆☆ |
| 模拟 5000 用户同时抢购 | 合适 | 系统是否崩溃、数据库锁、缓存击穿 | ★★★★☆ |
| 接口自动化回归 + 少量并发 | 合适 | 成功率、响应时间是否稳定 | ★★☆☆☆ |
| 百万级 TPS 压测 | 不太合适 | 需要分布式压测或专业商用工具 | ★★★★★ |
第二部分:安装与启动(2025-2026 推荐方式)
方式一:最推荐(图形界面 + 最新版)
- 访问官网:https://jmeter.apache.org/download_jmeter.cgi
- 下载最新稳定版(目前大概率是 5.6.x 或 5.7.x 系列)
- 选择
apache-jmeter-5.6.3.zip或.tgz
- 解压到任意目录(不要放在有中文或空格的路径)
- 推荐路径示例:
- Windows:
D:\tools\apache-jmeter-5.6.3 - Mac/Linux:
/opt/jmeter-5.6.3或~/jmeter-5.6.3
- Windows:
- 启动方式(任选其一)
# Mac / Linux
cd /opt/jmeter-5.6.3/bin
chmod +x jmeter
./jmeter # 有图形界面
# Windows 双击
D:\tools\apache-jmeter-5.6.3\bin\jmeter.bat
方式二:Docker 一键启动(最干净)
docker run -d -p 60000:60000 \
-v $(pwd)/jmeter:/jmeter \
--name jmeter \
justb4/jmeter -s -Jserver.rmi.ssl.disable=true
然后浏览器访问:http://localhost:60000
第三部分:第一次压测完整流程(最经典的 HTTP 接口测试)
目标:压测一个登录接口,模拟 100 个用户并发登录 60 秒
步骤 1:新建测试计划
- 打开 JMeter → 文件 → 新建(或直接用默认的 Test Plan)
- 右键 Test Plan → Add → Threads (Users) → Thread Group
步骤 2:设置线程组(模拟多少用户)
| 参数 | 推荐填写值(示例) | 含义说明 |
|---|---|---|
| 线程数(Number of Threads) | 100 | 模拟 100 个虚拟用户 |
| Ramp-Up 周期(秒) | 10 | 10 秒内把 100 个用户全部启动(越平滑越好) |
| 循环次数 | 永远(Forever) | 或填 1 次、10 次,看需求 |
| 调度器 | 勾选 | 启用持续时间 |
| 持续时间(Duration) | 60 | 压测 60 秒后自动停止 |
步骤 3:添加 HTTP 请求
右键 Thread Group → Add → Sampler → HTTP Request
填写示例(假设你要测的接口是 POST 登录):
- Protocol:http 或 https
- Server Name or IP:api.example.com
- Port Number:80 或 443
- Method:POST
- Path:/api/login
- Body Data(或 Parameters):
{
"username": "testuser${__threadNum}",
"password": "123456"
}
小技巧:用 ${__threadNum} 让每个线程用不同的用户名,避免全部用同一个账号登录
步骤 4:添加监听器(看结果的地方)
右键 Thread Group → Add → Listener(最常用的 4 个)
- View Results Tree —— 调试时必开,看每条请求详情
- Summary Report —— 最常用,看总体 TPS、平均响应时间
- Aggregate Report —— 非常重要,看 90%、95%、99% 响应时间
- Graph Results —— 图形化曲线(启动时勾选 Write All Data)
步骤 5:添加常用配置元件(强烈推荐)
右键 Thread Group → Add → Config Element
- HTTP Header Manager
常用 Header:
Content-Type: application/json
Accept: application/json
Authorization: Bearer ${token} (如果需要 token 登录)
- HTTP Cookie Manager
自动管理 Cookie(登录后非常有用) - HTTP Request Defaults
把 IP、端口、协议统一填在这里,下面所有 HTTP Request 都不用重复填
步骤 6:运行 & 看结果
点击绿色三角(Run)或快捷键 Ctrl+R
运行结束后,看 Summary Report 或 Aggregate Report 最关键几列:
- Samples:总请求数
- Average:平均响应时间(ms)
- 90% Line / 95% Line / 99% Line:最关注的指标(大部分用户感受到的延迟)
- Throughput:每秒事务数(TPS / QPS)
- Error%:错误率(>0.1% 就要重视)
第四部分:真实项目中最常用的 10 个进阶技巧
- 如何提取 token 并在后续请求使用?
- 添加 JSON Extractor(后置处理器)
- JSON Path expressions:
$.access_token或$.data.token - 变量名:token
- 后续请求 Header:
Authorization: Bearer ${token}
- 如何参数化(不同用户不同账号密码)?
- CSV Data Set Config
- 准备 users.csv:
username,password user1,123456 user2,123456 ... - 变量名:username,password
- Sharing mode:All threads 或 Current thread group
- 如何做思考时间(更接近真实用户)?
- 在每个请求之间加 Constant Timer 或 Gaussian Random Timer
- 推荐:200–800ms 随机思考时间
- 如何做分布式压测?(一台机器压不动时)
- 主控机 + 多台压测机(都安装 JMeter)
- 压测机启动 jmeter-server
- 主控机菜单 → Run → Remote Start All
- 如何保存结果为 .jtl 或 .csv?
- 监听器中勾选 “Save as CSV file” 或运行时加
-l result.jtl
- 如何命令行无界面运行(CI/CD 常用)?
jmeter -n -t test.jmx -l result.jtl -e -o report/
第五部分:最容易踩的 20 个坑(新手必看)
- 没改默认语言 → 中文界面乱码
- 线程数设 10000+ 却只跑了 200 → JVM 内存不够(调 jmeter.bat / jmeter.sh 堆内存)
- HTTPS 报证书错 → 勾选 “Use KeepAlive” 或导入证书到 JMeter
- 结果全是 0ms → 忘了勾 “Retrieve All Embedded Resources”
- 登录态不生效 → 没加 Cookie Manager 或 Header 没带 token
- CSV 文件读取不到 → 路径写相对路径或绝对路径搞错
- 运行卡死 → 监听器开太多(尤其是 View Results Tree 大样本时)
- 报告图表不显示 → 结果文件没生成或路径不对
希望这份教程能让你从 0 到能独立完成一个相对完整的接口压测。
你现在最想继续深入的点是哪个?
- 登录态保持 + token 提取完整示例
- CSV 参数化 + 关联的详细步骤
- 命令行 + Jenkins 集成
- 分布式压测搭建
- 结果分析怎么看(指标解读)
- 非 HTTP 协议(如 Dubbo、JDBC)
告诉我你的具体需求,我可以继续给你更细的步骤或示例。