Postman 怎么把响应字段保存为集合变量供后续请求使用
如果一个请求返回了订单号、用户 ID 或分页游标,最稳妥的做法是在请求的 Post-response 脚本中读取响应 JSON,再用 pm.collectionVariables.set() 写入 Collection 变量。后续请求直接写 {{order_id}},不需要手动复制响应值。
- 响应字段先用
pm.response.json()解析,再按真实 JSON 路径取值。 - 集合变量写入使用
pm.collectionVariables.set('变量名', 值),不要误写成环境变量。 - 脚本成功不等于传值成功,还要在后续请求的 URL、参数或请求头里确认变量已解析。
你只需要在对应请求的「测试」标签页里写几行简单的JS脚本,解析返回的响应内容,调用pm.collectionVariables.set方法就能把指定字段存为集合变量,之后在任意后续请求的参数、头信息、请求体里用{{变量名}}的语法就能直接引用。
第 1 步:先确认响应字段路径
打开 Collection 中负责创建数据的请求,点击 Send,先看响应 Body。假设返回结构是下面这样,真正要保存的值不是顶层的 id,而是 data.id:
{
"success": true,
"data": {
"id": "sample-4821",
"status": "created"
}
}
然后进入请求编辑器的 Scripts → Post-response。这个入口很重要:pm.response 面向的是当前请求已经返回的响应,放到 Pre-request 脚本里就没有这份响应可读。
第 2 步:在 Post-response 脚本里写入集合变量
在脚本编辑器中加入以下代码。先解析一次 JSON,再检查路径是否存在;字段缺失时主动抛出错误,避免旧的 order_id 被误认为本次请求产生的新值。
// 读取当前请求的 JSON 响应
const body = pm.response.json();
const orderId = body?.data?.id;
// 字段缺失时停止写入,避免保留旧值造成误判
pm.test('响应包含订单号', () => {
pm.expect(orderId, 'data.id').to.be.a('string').and.not.empty;
});
if (orderId) {
// 把值保存到当前 Collection 的变量作用域
pm.collectionVariables.set('order_id', orderId);
console.log('已保存 order_id:', orderId);
}

点击 Send 后,测试结果应显示通过,Console 里也能看到保存日志。这里的判断分成两层:pm.test 负责告诉你响应是否符合预期,set 只在字段存在时真正更新变量。
第 3 步:让后续请求消费这个变量
打开同一 Collection 下的下一个请求,把路径中的固定值替换成 {{order_id}},例如:
GET /orders/{{order_id}}
发送前把鼠标停在变量上,或打开右侧的变量面板,确认它已经被解析为示例值。再看响应状态和请求 URL:URL 中不应继续保留双大括号,响应应返回对应订单的数据。

第 4 步:变量不生效时按作用域排查
最常见的误区是把“保存成功”和“引用成功”混为一谈。检查下面四项:
| 现象 | 优先检查 | 处理方式 |
|---|---|---|
| 脚本报 undefined | 响应路径 | 重新对照 Body,确认是 data.id 还是顶层字段 |
| 后续请求显示未解析 | 变量名 | 保证 set 中的 order_id 与引用处完全一致 |
| 读到旧订单号 | 字段缺失分支 | 缺字段时不要 set;必要时手动 unset 后重跑 |
| 取到另一套值 | 变量作用域 | 检查 Collection、Environment 和局部变量是否同名 |
Postman 会按变量作用域解析同名变量。本文明确写入的是 Collection 变量,因此脚本读取也应使用 pm.collectionVariables.get('order_id');如果团队需要按环境切换地址和凭据,环境变量可以另行管理,不要为了方便把所有响应数据都塞进 Environment。
常见问题
为什么 pm.response.json() 解析失败?
当前响应可能不是 JSON,或接口返回了空 Body。先在响应面板确认 Content-Type 和实际文本,再决定是否改用 pm.response.text()。
集合变量能在另一个 Collection 里直接使用吗?
不能把它当成全局变量理解。它属于当前 Collection;跨 Collection 复用时,应重新设计变量来源或使用合适的环境/全局作用域。
为什么脚本通过了但请求仍然使用旧值?
通常是本次响应字段缺失,而脚本没有清理旧值。保留本文的字段断言,并在失败分支中停止更新,能更早暴露问题。
应该在脚本里写变量,还是手动在 Variables 面板里填?
固定配置适合手动填写;由前一个请求动态产生的 ID、Token 或游标,适合在 Post-response 脚本中写入,重复运行时更稳定。
Go base64 解码 URL 参数时怎么处理无填充格式
- 上一篇
- Go base64 解码 URL 参数时怎么处理无填充格式
- 下一篇
- Embedding 模型切换后旧向量为什么不能直接混用
-
- 文章 · 软件教程 | 1小时前 | docker · dockerfile · 镜像构建 · docker 调试工具 多阶段构建 multi-stage build
- Docker 多阶段构建怎么把调试工具排除在最终镜像
- 492浏览 收藏
-
- 文章 · 软件教程 | 3小时前 | docker · compose · 容器编排 · 健康检查 · Docker Compose depends_on healthcheck service_healthy
- Docker Compose 怎么让服务只在依赖健康后启动
- 180浏览 收藏
-
- 文章 · 软件教程 | 6小时前 | 开发工具 · git · 版本控制 · Git worktree 同时检出分支 并行开发
- Git 怎么用 worktree 同时检出两个功能分支
- 368浏览 收藏
-
- 文章 · 软件教程 | 7小时前 | vs code · 软件教程 · 搜索性能 · 工作区设置 · VS Code 全文搜索 大文件夹 search.exclude files.watcherExclude
- VS Code 大文件搜索变慢时怎么设置排除目录
- 115浏览 收藏
-
- 文章 · 软件教程 | 8小时前 | vs code · 软件教程 · 任务编排 · 构建排错 · tasks.json VS Code Tasks dependsOn dependsOrder 构建任务 失败传播
- VS Code Tasks 怎么让构建任务失败时停止后续任务
- 256浏览 收藏
-
- 文章 · 软件教程 | 14小时前 | 环境变量 · vs code · 软件教程 · Remote SSH · 远程开发 · VS Code path Remote SSH 远程终端 扩展宿主 shell环境
- VS Code Remote SSH 连接后终端环境不一致怎么排查
- 115浏览 收藏
-
- 文章 · 软件教程 | 15小时前 | vs code · launch.json · 调试环境变量 ·
- VS Code 怎么为不同项目设置不同的调试环境变量
- 215浏览 收藏
-
- 文章 · 软件教程 | 1天前 | Docker Desktop · Docker volume · 容器数据 · volumes 数据卷 Docker Desktop Stored data
- Docker Desktop 怎么查看容器数据卷里的文件
- 464浏览 收藏
-
- 文章 · 软件教程 | 1天前 | git · GitHub Desktop · 分支管理 · GitHub Desktop stash 切换分支 未提交修改
- GitHub Desktop 切换分支前怎么暂存未提交修改
- 212浏览 收藏
-
- 文章 · 软件教程 | 1天前 | 提交 · git · GitHub Desktop · GitHub Desktop 部分提交 选择代码行
- GitHub Desktop 怎么只提交文件中的部分修改
- 142浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- SuperCLUE
- SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
- 172次使用
-
- C-Eval
- 深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
- 102次使用
-
- AI Prompt Library
- 探索AI Prompt Library免费资源库,涵盖营销、写作及多场景AI提示词。兼容ChatGPT、Claude等工具,一键复制优化输出,提升工作效率。
- 26次使用
-
- LangGPT
- LangGPT是一种受编程语言启发的结构化提示词设计工具,提供双层框架、模块化模板及变量功能,帮助用户高效编写高质量Prompt。该项目已在GitHub免费开源,适用于内容创作、编程辅助等多场景。
- 37次使用
-
- ClickPrompt
- ClickPrompt是一款专为AI提示词编写者设计的开源在线工具,支持Stable Diffusion绘图、ChatGPT对话及GitHub Copilot代码辅助。提供Prompt自动生成、一键运行、社区分享及可视化优化功能,帮助用户高效获取精准AI输出。
- 76次使用
-
- Go 1.27 go doc 支持 package@version:查指定版本 API 时如何避免看错文档
- 2026-08-31 474浏览
-
- 后台接收不到axios发送的post数据
- 2023-01-27 435浏览
-
- 数据库迁移状况百出?快来看看这个开源工具
- 2023-02-16 164浏览
-
- VS Code Dev Containers 实战:用容器搭建一致开发环境
- 2026-06-12 182浏览
-
- Docker Compose 本地多服务环境实战:MySQL、Redis、Nginx 一键启动
- 2026-06-12 250浏览

