本节摘要:很多业务请求间有依赖——登录拿 token,下单带 token。本节讲用提取器做关联、用 Cookie 管理器做会话保持。
阅读完本节,你应当能够:
关联:一个请求的响应里有下一个请求要用的数据(如 token、订单 ID),提取出来传给后续请求。JMeter 用后置处理器提取器实现。

<!-- 登录采样器下挂 JSON 提取器 --> <JsonPostProcessor> <stringProp name="JsonPathExpressions">$.data.token</stringProp> <stringProp name="refNames">TOKEN</stringProp> </JsonPostProcessor> <!-- 下单采样器引用 --> <stringProp name="Header.value">${TOKEN}</stringProp>
HTTP Cookie 管理器自动存取 Cookie:
<CookieManager> <boolProp name="CookieManager.clearEachIteration">true</boolProp> </CookieManager>
挂测试计划或线程组下,对组内所有请求生效。
有些接口返回动态参数(CSRF token、时间戳签名),下个请求要带:
${变量} 带上统一加请求头(如 Authorization、Content-Type):
<HeaderManager> <stringProp name="Header.name">Authorization</stringProp> <stringProp name="Header.value">Bearer ${TOKEN}</stringProp> </HeaderManager>
⚠️ 常见坑:会话没保持——登录后下单又要求登录。加 Cookie 管理器自动保持会话,或手动提取 token 带上。
💡 关键直觉:关联用提取器把前请求的数据传给后请求。会话用 Cookie 管理器自动保持,或提取 token 用信息头管理器统一带。动态参数提取再带。
${变量}。下一节讲分布式——单机扛不住怎么多机协同。
关联(Correlation)指从前一个请求的响应中提取动态值,用于后续请求。常用提取器:正则表达式提取器(匹配任意文本,最通用)、JSON 提取器(按 JSONPath 取值)、XPath 提取器(解析 XML)。典型场景:登录后提取 token 用于后续鉴权请求。
| 提取器 | 适用格式 | 配置要点 |
|---|---|---|
| 正则表达式 | 任意文本 | 表达式、模板、匹配号 |
| JSON 提取器 | JSON 响应 | JSONPath、默认值 |
| XPath 提取器 | XML/HTML | XPath 表达式 |
| CSS/JQuery 提取器 | HTML | 选择器 |
HTTP Cookie 管理器自动保存与发送 Cookie,维持会话;对需要手动传递的会话标识(如 CSRF token),用提取器捕获后通过变量引用。会话管理要点:确认 cookie 域与路径配置正确;多线程下每个线程独立会话,避免串扰;分布式测试时注意 cookie 在各节点的一致性。
以登录获取 token 为例:登录请求后添加 JSON 提取器,JSONPath 设为 .data.token,变量名 token;后续请求在 HTTP 头管理器中添加 Authorization: Bearer {token}。若响应为 XML 或自定义文本,改用正则表达式提取器:表达式 token\"[\"],模板 1。关联成功的关键是提取器路径与响应结构匹配,可用查看结果树确认提取值。
使用 HTTP Cookie 管理器后,JMeter 自动维护每个线程的 cookie 集合。注意:跨线程组共享登录态需手动传递 token(通过属性 {__setProperty} 与 {__property}),cookie 管理器默认按线程隔离;HTTPS 场景确认 SSL 证书配置;分布式测试中每个 Slave 独立维护 cookie,需保证脚本一致。
关联的健壮性:动态值可能变化(token 过期、随机值格式变更),提取器要写容错(默认值、多备选路径);断言校验提取值非空,防止空值静默传递;关联提取位置(响应体 vs 响应头)要确认正确。健壮的关联脚本在接口调整时也能快速定位问题。
会话管理涉及安全细节:token 通过 HTTPS 传输(避免明文);cookie 的 Secure/HttpOnly 属性确认;多账号场景避免串号(每个线程独立凭证);会话失效处理(401 时重新登录)。安全规范的会话管理是压测脚本专业性的体现。
总结:关联与会话管理让脚本从"单请求冒烟"走向"全链路真实业务模拟"。掌握正则、JSON、XPath 三类提取器的适用场景,理解 Cookie 管理器与属性传递的会话机制,是搭建复杂业务压测脚本的必备能力。
工程实践中,关联脚本的稳定性直接影响压测成功率:建议把提取器封装为可复用的"公共关联"片段,随接口文档同步维护;每次接口变更后先跑单线程验证关联值,再进入正式压测。