news 2026/4/18 8:03:14

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/3/15 12:43:32

科技守护温情,智慧康养让陪伴跨越距离

在快节奏的现代生活中,无数子女奔赴远方追逐理想,却始终有一份沉甸甸的牵挂系于家中长辈身上。独居时的突发意外、日常的健康疏忽、独处时的孤单寂寥,成为无数家庭共同的心病。幸运的是,我发现了一款京能天云数据打造的智慧康养服…

作者头像 李华
网站建设 2026/2/26 20:21:04

clonos web界面使用cbsd创建一个bhyve ubuntu server虚拟机(未成功)

已经安装好了clonos web界面软件:https://skywalk.blog.csdn.net/article/details/157354348 创建jail虚拟机很方便。 尝试创建bhyve ubuntu 虚拟机。 先上传iso 但是传上去的没有看到啊! 创建虚拟机 创建bhyve虚拟主机,选我们上传的光盘…

作者头像 李华
网站建设 2026/4/18 7:42:21

IPD课程系列-产品平台和CCB

一、课程简介如果您的企业面临以下问题,则需要考虑参加本课程:1.如何实现基于产品平台去开发产品?2.如何规划产品平台?3.如何进行技术规划?4.如何进行CBB(公共共享模块)设计?5.如何保…

作者头像 李华
网站建设 2026/4/18 7:51:39

Python多线程与多进程:如何选择?(GIL全局解释器锁详解)

SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式。本文将介绍如何使用SQLAlchemy ORM进行数据库操作。目录安装SQLAlchemy核心概念连接数据库定义数据模型创建数据库表基本CRUD操作查询数据关系操…

作者头像 李华
网站建设 2026/4/17 17:37:29

Razor 简介

Razor 简介 概述 Razor 是一种由微软开发的开源服务器端标记语言,它主要用于在 ASP.NET MVC 和 ASP.NET Web Pages 应用程序中创建动态网页。Razor 的设计理念是让开发者能够以简洁的方式编写视图代码,同时保持与 HTML 的紧密集成。本文将详细介绍 Razor 的基本概念、工作原…

作者头像 李华
网站建设 2026/4/17 3:11:49

7-16 WPS JS宏 RandBetween、Address实例8--[唯一性]类的应用

7-16 WPS JS宏 RandBetween、Address实例8--[唯一性]类的应用 函数 RandBetween: 为excel函数,需要WorksheetFunction调用。 格式:WorksheetFunction.RandBetween(起点,终点) Address: 为显示地址 格式:区域范围等…

作者头像 李华