news 2026/6/21 20:26:30

postman怎么获取上一个接口执行完后的参数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
postman怎么获取上一个接口执行完后的参数

在Postman中获取上一个接口执行完后的参数,主要有以下几种方法:

1.使用环境变量(Environment Variables)

这是最常用的方法:

设置变量(在第一个接口的Tests中):

// 解析响应 const responseJson = pm.response.json(); // 将需要的值保存到环境变量 pm.environment.set("token", responseJson.token); pm.environment.set("userId", responseJson.data.userId); pm.environment.set("sessionId", responseJson.sessionId); // 也可以保存数组或对象 pm.environment.set("userData", JSON.stringify(responseJson.data));

获取变量(在第二个接口中):

// 在URL中使用 // 例如:{{baseUrl}}/users/{{userId}}/profile // 在请求体中使用 // 在Body的JSON中使用:{{token}} // 在Headers中使用 // Authorization: Bearer {{token}} // 在Pre-request Script中获取 console.log("用户ID:", pm.environment.get("userId")); console.log("Token:", pm.environment.get("token")); // 如果是JSON字符串,需要解析 const userData = JSON.parse(pm.environment.get("userData") || "{}"); console.log("用户数据:", userData);

2.使用全局变量(Global Variables)

适用于所有接口共享的数据:

设置全局变量:

// 在第一个接口的Tests中 pm.globals.set("globalToken", pm.response.json().access_token); pm.globals.set("apiVersion", "v2.0");

获取全局变量:

// 在第二个接口中 const token = pm.globals.get("globalToken"); const version = pm.globals.get("apiVersion");

3.使用集合变量(Collection Variables)

适用于当前集合内的接口共享:

设置集合变量:

// 在第一个接口的Tests中 pm.collectionVariables.set("collectionToken", responseJson.token);

获取集合变量:

// 在同一个集合的第二个接口中 const collToken = pm.collectionVariables.get("collectionToken");

4.完整示例

第一个接口:登录接口

// 登录接口的Tests标签 pm.test("登录成功", function() { const response = pm.response.json(); // 验证状态码 pm.response.to.have.status(200); // 保存token到环境变量 pm.environment.set("accessToken", response.data.accessToken); // 保存用户ID pm.environment.set("currentUserId", response.data.userId); // 保存其他需要的参数 pm.environment.set("userRole", response.data.role); console.log("Token已保存:", response.data.accessToken); console.log("用户ID:", response.data.userId); });

第二个接口:获取用户信息

// 在URL中使用 // {{baseUrl}}/users/{{currentUserId}} // 在Headers中使用 // Authorization: Bearer {{accessToken}} // 在Pre-request Script中验证 const token = pm.environment.get("accessToken"); if (!token) { console.error("Token不存在,请先运行登录接口"); // 可以停止请求 throw new Error("请先获取token"); }

5.在Pre-request Script中处理

在第二个接口的Pre-request Script中,可以处理从环境变量获取的数据:

// 获取上一个接口保存的参数 const token = pm.environment.get("accessToken"); const userId = pm.environment.get("currentUserId"); // 动态设置请求头 pm.request.headers.add({ key: "Authorization", value: "Bearer " + token }); // 动态修改URL const originalUrl = pm.request.url.toString(); pm.request.url = originalUrl.replace("{userId}", userId); // 动态设置请求体 if (pm.request.body.raw) { const body = JSON.parse(pm.request.body.raw); body.userId = userId; body.timestamp = new Date().toISOString(); pm.request.body.raw = JSON.stringify(body); }

6.使用数据变量(Data Variables)

在集合运行时使用:

// 在集合运行前设置数据 pm.variables.replaceIn("{{$guid}}"); // 生成GUID pm.variables.replaceIn("{{$timestamp}}"); // 时间戳

7.批量设置变量

可以批量从响应中提取多个值:

// 从响应JSON中提取多个参数 const response = pm.response.json(); // 批量设置 const paramsToSave = { "authToken": response.token, "expiresIn": response.expires_in, "refreshToken": response.refresh_token, "userName": response.user.name }; Object.keys(paramsToSave).forEach(key => { if (paramsToSave[key]) { pm.environment.set(key, paramsToSave[key]); } });

8.使用动态变量

Postman提供了内置的动态变量:

// 在Tests中使用 console.log("GUID:", pm.variables.replaceIn("{{$guid}}")); console.log("时间戳:", pm.variables.replaceIn("{{$timestamp}}")); console.log("随机数:", pm.variables.replaceIn("{{$randomInt}}")); // 在URL或请求体中使用 // {{$guid}} {{$timestamp}} {{$randomInt}}

9.链式调用多个接口

可以在集合中使用:

// 在Tests中调用下一个请求 if (pm.response.code === 200) { // 保存数据 pm.environment.set("orderId", pm.response.json().orderId); // 延迟后执行下一个请求 setTimeout(() => { pm.sendRequest({ url: '{{baseUrl}}/orders/{{orderId}}', method: 'GET', header: { 'Authorization': 'Bearer {{accessToken}}' } }, function (err, response) { console.log(response.json()); }); }, 1000); }

10.最佳实践

  1. 变量命名规范:使用清晰的命名,如accessToken而不是token

  2. 清理变量:不需要的变量及时清理

  3. 使用不同环境:开发、测试、生产使用不同的环境

  4. 错误处理:检查变量是否存在

  5. 文档化:在描述中说明变量的用途

// 检查变量是否存在 if (!pm.environment.get("accessToken")) { console.warn("警告: accessToken 不存在"); // 可以设置默认值 pm.environment.set("accessToken", "default-token"); } // 清理变量 pm.environment.unset("tempToken"); pm.environment.unset("tempData");

变量作用域优先级

Postman中变量的优先级(从高到低):

  1. 本地变量(Local Variables)

  2. 数据变量(Data Variables)

  3. 环境变量(Environment Variables)

  4. 集合变量(Collection Variables)

  5. 全局变量(Global Variables)

通过合理使用这些变量传递方法,你可以在Postman中轻松地实现接口间的参数传递和数据共享。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 2:25:53

AI编程案例:基于 Vue3 + Leaflet 开发的中国省市两级地理数据可视化系统

本文展示是是新中地学员使用AI编程制作的“基于 Vue3 Leaflet 开发的中国省市两级地理数据可视化系统”,支持地图展示、搜索定位、图层控制等功能。 功能特性 多层级地图展示 省级边界展示市级边界展示地级市驻点标注 交互功能 地区搜索与快速定位地图缩放和平移…

作者头像 李华
网站建设 2026/6/20 2:25:54

极简集成Mobile库:几行代码搞定短信与网络通信

短信验证、网络切换、设备信息获取——这些常见的移动通信需求,如今通过Mobile库可被极大简化。开发者无需编写大量原生代码,只需几行调用即可完成功能集成。本文聚焦于核心使用场景,带你体验“写得少,做得多”的开发新范式。在面…

作者头像 李华
网站建设 2026/6/19 4:48:16

23. 抗锯齿

1.MSAA和FXAA简介 2.FXAA优缺点1.MSAA和FXAA 1).MSAA 是"渲染过程中抗锯齿"为了消除锯齿, GPU会对每个像素采样多次(比如:2x MSAA采样2次, 4x MSAA采样4次), 每一次采样都要执行片元着色器、纹理采样、深度测试等操作, 相当于让GPU多渲染几倍的像素数据, 这也是为什么…

作者头像 李华
网站建设 2026/6/12 2:40:27

samlib.dll文件丢失找不到问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/16 18:29:40

Nginx:如何配置基于ip的虚拟主机(总结二)

一、什么是虚拟主机 虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互…

作者头像 李华
网站建设 2026/6/18 17:31:42

python关于英雄联盟云顶之弈的游戏攻略视频辅助微信小程序

目录英雄联盟云顶之弈游戏攻略视频辅助微信小程序摘要核心功能技术实现代码示例(数据抓取)用户交互设计数据安全扩展方向开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式&#xff…

作者头像 李华