一、学习总览
|-----------|-------------------|--------------------------|
| 天数 | 主题 | 核心产出 |
| Day 1 | JMeter 入门与基础概念 | 弄清 JMeter 是什么、能干什么、不能干什么 |
| Day 2 | 第一个测试计划 + HTTP 请求 | 能独立搭出一个最小可运行的 HTTP 测试计划 |
| Day 3 | 断言:让测试结果有意义 | 理解为什么没有断言,错误率永远是 0 |
| Day 4 | 参数化与关联(重点中的重点) | 会用用户变量和 CSV 数据驱动做多用户数据 |
| Day 5 | 逻辑控制器与定时器 | 用逻辑控制器组织业务流程 |
| Day 6 | 压力测试、HTML 报告与命令行 | 搞懂并发、Ramp-Up 与各测试类型的区别 |
| Day 7 | 进阶技巧、最佳实践与综合实战 | 会用 Cookie Manager 保持登录态 |
二、每日详细计划
今日目标
- 会用用户变量和 CSV 数据驱动做多用户数据
- 掌握正则提取器和 JSON 提取器
- 能提取登录 token 传给后续接口(关联)
详细学习步骤(照做即可)
- 用户自定义变量:右键线程组 → Add → Config Element → User Defined Variables,加 host=httpbin.org、username=test01,脚本里用 {host}、{username} 引用
- 准备 users.csv:第一行表头 username,password,下面三行数据 test01,123456 / test02,abcdef / test03,xyz789,用 UTF-8 保存
- CSV Data Set Config:右键线程组 → Add → Config Element → CSV Data Set Config,文件名填 users.csv(绝对路径)、文件编码 UTF-8、变量名称 username,password、分隔符 ,、忽略首行 True

图 1 CSV Data Set Config:多用户数据驱动
- 在线程组把线程数设为 CSV 行数(3),每个线程读一行,实现三用户并发登录
- 正则提取器:右键「登录采样器」→ Add → Post Processors → Regular Expression Extractor,引用名称 token、正则 \{"token": "(.+?)"\}、模板 1、匹配数字 1、默认值 NOT_FOUND

图 2 正则表达式提取器:提取 token
- JSON 提取器:右键「登录采样器」→ Add → Post Processors → JSON Extractor,引用名称 token、JSON Path $.token,更直观

图 3 JSON Extractor:用 JSON Path 提取字段
- 关联使用:在后续请求的 HTTP Header Manager 里加 Authorization: Bearer ${token},token 就从登录响应动态取到了

图 4 HTTP Cookie Manager:自动携带 Cookie 保持登录态(token 关联的补充方案)
动手练习
- 创建 users.csv 并用 CSV Data Set Config 驱动 3 个线程访问 /get,每个请求的参数不同
- 在 /get 响应里提取 url 字段:正则提取器和 JSON 提取器各实现一遍,两种方法对比
- 模拟真实链路:登录接口提取 token → 订单接口带 Authorization 请求,跑通关联
)
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 压测要贴近真实,参数化 + 关联是 JMeter 核心中的核心。多用户数据:CSV 文件一行一个用户,CSV Data Set Config 喂给脚本,线程数 = 数据行数。关联:登录返回的 token 怎么给下一个接口用?正则提取器(. +? 非贪婪匹配)或 JSON 提取器(.token)把值存进变量,后续请求 Header 里写 Authorization: Bearer {token}。一句话总结:提取上一个请求的值,塞进下一个请求。#JMeter #接口测试 #软件测试 |
小贴士: 正则里的 (.+?) 是非贪婪匹配,模板 1 取第一个括号的内容;能用 JSON 提取器就别用正则,好懂好维护。