Postman 如何在不同接口之间传递数据

288 篇文章 0 订阅
125 篇文章 0 订阅

[Postman]是一个强大的 API 开发工具,它使得开发者可以发送请求、测试和文档化 API。在实际使用中,我们经常需要在不同接口之间传递数据,比如前一个请求的响应数据需要作为后一个请求的输入参数、将获取到的 token 凭证作用于全局的其它接口等。Postman 提供了多种方式来实现数据的传递和共享,主要可以通过环境变量、全局变量、集合变量和局部变量来存储数据,并在接口之间传递数据,详情见下文。

初识 Postman 变量

Postman 中提供了多种类型的变量,以便于管理和使用数据:

  • 环境变量:特定于环境的变量,适用于模拟不同的开发、测试和生产环境。
  • 全局变量:在所有环境下都可以访问的变量。
  • 集合变量:仅在特定 Postman 集合范围内有效的变量。
  • 局部变量(临时变量) :仅在当前请求的预请求脚本或测试脚本中临时存在的变量。

使用环境变量传递数据

环境变量非常适合存储特定环境下需要的配置信息,比如 API 的域名、认证 token 等。通过环境变量传递数据的步骤如下:

1.创建和选择环境

Postman 的左侧边栏,点击“Environments”选项,然后点击“+”创建一个新环境,创建环境后,定义你需要的变量及其初始值。

Postman 在不同接口之间传递数据

2.在请求中使用变量

在构建请求 URL 或者请求体时,可以通过{{variableName}}的形式使用环境变量。比如你在环境中定义了一个变量 host,host 里面的值就是 API 的域名,比如 localhost:8080,你在接口中引用的时候,可以直接引用定义的变量,例如:

{{host}}/api/v1

Postman 在不同接口之间传递数据

3.在脚本中动态设置环境变量

假设第一个请求返回了一个需要在后续请求中使用的资源 ID,你可以在第一个请求的 Tests 脚本中添加代码来更新环境变量,比如接口返回的响应数据结构如下所示:

 
  1. {

  2. "code": "0",

  3. "data": {

  4. "id": "5280"

  5. },

  6. "message": "success"

  7. }

那么你的 Tests 脚本可以写成下面这样,其中NAME_ID就是将返回的 id 获取到之后,存储到环境中的环境变量。

 
  1. var body = pm.response.json();

  2. var NAME_ID = body.data.id;

  3. console.log("NAME_ID:" + NAME_ID);

  4. pm.environment.set("NAME_ID", NAME_ID);

Postman 在不同接口之间传递数据

发送请求后,Postman 会自动将其提取到环境变量中。

Postman 在不同接口之间传递数据

4.使用环境变量

只要在环境变量中有数据,那么就可以通过 {{}}来引用这个环境变量,这样就能达到接口间传递数据的目的。例如上面的 id 获取到之后,就可以在接口的参数中使用,它可能是这样的:

{{host}}/pet/{{NAME_ID}}

也可能是这样的:

{{host}}/pet?id={{NAME_ID}}

Postman 在不同接口之间传递数据

如果将你一个 token 凭证存储在了环境变量中,比如下面这样:

Postman 在不同接口之间传递数据

token 凭证一般用来鉴权,我们希望这个 token 凭证在发送请求的时候能够自动携带在接口上,因为我们不可能一条接口一条接口的来引用这个 token,这样太麻烦了。要作用于全局接口,你可以在集合中设置,如下图所示,这样这个集合下的接口在发送请求时,就会携带这个 token 凭证。

Postman 在不同接口之间传递数据

有一点要注意,在集合中设置了鉴权的 token 后,在接口中需要选择“Inherit auth from parent”,也就是继承父级(继承自集合中设置的 token),不然不会生效的。

Postman 在不同接口之间传递数据

利用全局变量进行数据共享

全局变量的使用方法类似于环境变量,不过它们在任何环境下都可用。适用于那些在多个环境之间共享的数据。设置全局变量的方法如下:

pm.globals.set("variableName", value);

集合变量的应用

集合变量适用于仅在特定 Postman 集合中共享数据的场景。在集合的“编辑”菜单中,你可以添加和管理这些变量。这些变量同样通过{{variableName}}的形式在请求中使用,使用方法跟环境变量是一样的,就是作用的范围不一样。

Postman 在不同接口之间传递数据

局部变量的使用

局部变量或临时变量非常适合存储仅在当前请求或脚本执行期间需要的数据。它们不会被永久保存在 Postman 中,也不会对其他请求或环境产生影响。设置局部变量如下:

通过合理使用 [Postman]中的变量类型,可以实现数据在不同请求间的有效传递和共享。这不仅可以提高测试的灵活性和效率,也有助于模拟复杂的 API 交互场景。在实际开发和测试工作中,掌握这些技能将非常有用。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值