Postman中添加X-Request-ID需在Headers手动设置,但推荐用Pre-request Script动态生成:v10.20+用crypto.randomUUID()存入变量,旧版或受限环境改用时间戳+随机数;Collection级透传需在Collection预脚本统一设变量;若后端未生效,检查框架记录逻辑、反向代理配置及Header大小写拼写。

Postman 怎么加 X-Request-ID 请求头
直接在请求的 Headers 标签页里手动添加一行:Key 填 X-Request-ID,Value 填任意合法 UUID 字符串(如 123e4567-e89b-12d3-a456-426614174000)即可生效。但硬编码 ID 无法满足“每次请求自动唯一”的链路追踪需求,所以更推荐用脚本动态生成。
用 pm.variables.set() + crypto.randomUUID() 自动生成 ID
Postman v10.20+ 支持原生 crypto.randomUUID(),可在 Pre-request Script 中调用:
pm.variables.set("req_id", crypto.randomUUID());
然后在 Headers 里把 Value 设为 {{req_id}}。注意:旧版 Postman 不支持 crypto.randomUUID(),会报 ReferenceError: crypto is not defined;此时需降级用 require('crypto').randomBytes(16).toString('hex'),但该写法在 Postman Web 或某些沙箱环境中被禁用,稳定性差。
- 推荐仅在桌面版 Postman(Electron 环境)中使用
crypto.randomUUID() - 若团队共用集合且环境不统一,建议改用时间戳 + 随机数组合:
pm.variables.set("req_id", Date.now() + "-" + Math.random().toString(36).substr(2, 9)) - 避免用
new Date().toISOString()单独作 ID——毫秒级精度在并发请求下可能重复
如何让 X-Request-ID 在整个 Collection 中自动透传
如果多个接口需要串联追踪(比如 A → B → C),不能每个请求都手动生成 ID,得靠 Collection 级变量 + 脚本联动:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- 在 Collection 的 Pre-request Script 中统一生成并设置:
pm.collectionVariables.set("trace_id", crypto.randomUUID()) - 所有子请求的 Headers 中,
Value统一写{{trace_id}} - 若下游服务要求同时传递
X-Trace-ID和X-Span-ID(如 Zipkin 兼容格式),可扩展为:pm.collectionVariables.set("span_id", crypto.randomUUID()); pm.collectionVariables.set("parent_span_id", pm.collectionVariables.get("span_id")),再按需注入
注意:Collection 变量优先级高于环境变量,但不会跨 Collection 自动继承;如果测试涉及多个 Collection,得手动同步或改用全局变量(不推荐,易污染)。
X-Request-ID 被后端忽略?检查这三点
明明加了头却没出现在日志或响应中,常见原因:
- 后端框架默认不记录/不回传该字段(如 Express 需显式调用
res.set("X-Request-ID", req.get("X-Request-ID"))) - 反向代理(Nginx / API Gateway)主动 strip 掉了自定义 header,检查配置中是否有
underscores_in_headers off或proxy_pass_request_headers off - Postman 发送时 header 名拼错:大小写敏感,必须是
X-Request-ID,不是x-request-id或X-Request-Id(尽管 HTTP 协议允许小写,但部分中间件只认 PascalCase)
最稳的验证方式:用 curl -v 对比发送同样 header,看是否真抵达服务端——排除 Postman 自身渲染或显示干扰。










