Postman中应优先用pm.response.headers.get()获取响应头,它类型安全且不弃用;取不到时用pm.response.headers.all()遍历过滤,如处理多个Set-Cookie;存变量用pm.environment.set()并确认右上角眼睛图标显示值。

怎么用 postman.getResponseHeader() 提取响应头字段
直接在 Tests 脚本里调用 postman.getResponseHeader() 就能拿到响应头的原始字符串值,但要注意大小写不敏感、字段不存在时返回 null,不是空字符串。
常见错误是写错字段名(比如写成 "content-type" 没问题,但写成 "Content_Type" 或 "Content-Type "(末尾带空格)就取不到)。
- 正确写法:
var token = postman.getResponseHeader("Authorization"); - 如果字段含空格或特殊字符(如
X-Request-ID),仍按原样写,Postman 内部会做标准化匹配 - 取不到时先用
console.log(responseHeaders)打印全部头,确认字段是否存在、拼写是否一致
提取 Set-Cookie 或多个同名 Header 的值怎么办
postman.getResponseHeader("Set-Cookie") 只返回第一个 Set-Cookie 字段值,而实际响应可能发回多个(如 sessionid=abc; Path=/ 和 csrftoken=xyz; Path=/)。这时候不能靠单次调用解决。
必须改用 pm.response.headers.all() 获取完整头列表,再手动过滤:
const cookies = pm.response.headers.all().filter(h => h.key === "Set-Cookie");
const sessionCookie = cookies.find(c => c.value.includes("sessionid="));
if (sessionCookie) {
pm.environment.set("sessionid", sessionCookie.value.split(";")[0].trim());
}
注意:不要直接存整条 Set-Cookie 值(含 Path=、Expires= 等),下游请求头里填的是纯 Cookie: sessionid=abc 格式。
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
为什么用 pm.response.headers.get() 有时比 postman.getResponseHeader() 更稳
新版 Postman 推荐优先用 pm 对象 API,因为 postman.* 是旧版遗留接口,已在部分版本中被标记为 deprecated,且不支持链式调用或类型推断。
- 推荐写法:
pm.response.headers.get("X-Total-Count") - 它返回
string | null,类型更明确;而postman.getResponseHeader()在某些响应下可能抛异常 - 若需大小写无关匹配多个值(比如同时兼容
"x-total-count"和"X-Total-Count"),pm.response.headers.has()可先判断存在性
提取后怎么安全地存变量并给下个请求用
存变量本身很简单,但容易忽略作用域和引用时机——环境变量(pm.environment.set())只在当前环境生效,全局变量(pm.globals.set())跨环境可用,但多人协作时易冲突。
真正关键的是:下个请求是否真的“读到了”这个变量?这取决于你在哪里引用:
- 请求 URL、Headers、Body 中用
{{my_token}}是实时解析的,没问题 - 但在 Pre-request Script 里提前读
pm.environment.get("my_token"),要确保上一个请求已执行完且 Tests 脚本跑过 - 如果用了 Collection Runner 或 Newman,记得勾选 “Persist variables” 或在脚本末尾加
pm.environment.unset("my_token")避免脏数据残留
最常被跳过的一步:没检查右上角眼睛图标里变量是否真有值。只要 pm.environment.set() 后没报错,但眼睛里没显示,大概率是字段名拼错或响应根本没返回那个 header。










