pm 1.0 postman 使用变量和环境 为所有接口设置 token

一、变量

变量允许您在请求和脚本中存储和重用值。通过将值存储在变量中,您可以在整个集合、环境和请求中引用它——如果您需要更新该值,您只需在一个地方更改它。使用变量可以提高您高效工作的能力,并最大限度地减少出错的可能性。

在哪儿找到变量

右上角的小眼睛

为何要使用变量

  1. 如果您在多个请求中有相同的 URL——但 URL 可能会改变——您可以将它存储在一个变量中。如果 URL 发生变化,您只需要更改变量值,它就会反映在您的整个集合中,无论您在何处使用该变量名称。同样的原则适用于您请求中重复数据的任何部分。

  2. 您可以使用变量在请求和测试之间传递数据,例如,如果您使用集合链接请求。

变量作用范围

同 java 中的变量一样有作用域

  • Global
  • Collection
  • Environment
  • Data
  • Local

Global:全局变量在整个工作区中都可用。(一般都不用它)
Collection:集合变量在集合中的整个请求中都可用,并且与环境无关,因此不要根据所选环境进行更改。

如果您仅使用单个环境,则集合变量是合适的,例如用于身份验证 / URL 详细信息。

Environment:允许您针对不同环境定制处理,例如本地开发与测试或生产。一次只能激活一个环境。

如果您只有一个环境,使用集合变量会更有效率,但是环境允许您指定基于角色的访问级别。

Local:是临时的,只能在您的请求脚本中访问。局部变量值仅限于单个请求或集合运行,并且在运行完成后不再可用。

如果您需要一个值来覆盖所有其他变量范围,但不希望该值在执行结束后持续存在,则局部变量是合适的。

Data:来自外部 CSV 和 JSON 文件,用于定义在通过 Newman 或 Collection Runner 运行集合时可以使用的数据集。
在这里插入图片描述

定义变量

大部分语言中的变量都一样,要使用必须先定义

使用 postman 图形界面定义变量

1. 创建 Global 和 Environment 变量
在这里插入图片描述
可以再右上角眼睛那儿点击操作。

2. 创建 Collection 变量
在这里插入图片描述

注意:可以随时添加和编辑变量。您需要为新变量包含的只是一个名称——您可以选择提供一个初始值,但也可以稍后设置它,包括从脚本中设置。使用复选框启用或禁用变量。

3. Local 变量
Local 是在脚本中定义的。

在脚本中定义变量

  1. 使用pm.globals来定义一个全局变量:
pm.globals.set("variable_key", "variable_value");
  1. 使用pm.collectionVariables定义集合变量:
pm.collectionVariables.set("variable_key", "variable_value");
  1. 使用pm.environment定义的环境变量(在当前选择的环境):
pm.environment.set("variable_key", "variable_value");
  1. 使用 pm.variables 定义Local 变量
pm.variables.set("variable_key", "variable_value");

如果您对环境具有查看但没有编辑权限,则您的脚本代码只会影响当前值,不会与您的团队同步或共享。

可以使用unset删除变量:

pm.environment.unset("variable_key");

访问变量

1. 可以使用双花括号在整个 Postman 用户界面中引用变量。

例如,要在请求身份验证设置中引用名为“username”的变量,您可以使用以下语法并在名称周围加上双花括号:

{{username}}

可以在 request URLs, parameters, headers, authorization, body, and header presets. 中使用变量。

当将鼠标悬停在变量上时,可以看到其当前状态的概览。当在请求中键入变量时,Postman 会提示您输入当前定义的任何变量。

在这里插入图片描述

2. 在脚本中访问变量

//access a variable at any scope including local
pm.variables.get("variable_key");
//access a global variable
pm.globals.get("variable_key");
//access a collection variable
pm.collectionVariables.get("variable_key");
//access an environment variable
pm.environment.get("variable_key");

使用 postman 提供的 动态变量

动态变量的例子如下:

{{$guid}} :一个 v4 风格的指南
{{$timestamp}}: 当前时间戳(以秒为单位的 Unix 时间戳)
{{$randomInt}}: 01000 之间的随机整数

完整列表,查看动态变量

二、环境

创建环境

将在 Postman 的右上角看到所选的环境状态,并在下拉列表中选择任何活动的环境。
在这里插入图片描述
创建环境之后可以在环境中添加环境变量。

选择当前生效环境

请从 Postman 右上角的下拉列表中选择它。
在这里插入图片描述

三、实践应用

0. 导入数据(此处使用 swagger url 导入)

在这里插入图片描述

1. 设置环境

新增环境
在这里插入图片描述
设置 环境变量
在这里插入图片描述
在这里插入图片描述

编辑完, Ctrl + S 保存

请注意 环境变量和 Collection 变量的生效优先级。

2. 为Collection 的 Auth 设置 Collection 变量

给 Auth 设置 token 变量 ,以满足每个 Collection 每次登录成功,这个 Collection 的所有接口都可以使用 token。

在登录接口的 Tests 的脚本中定义变量,在其对应的 Collection Authorization 中使用变量。

  1. 给 Collection 设置 Auth
    在这里插入图片描述
  2. 找到登录接口,在 Tests 中复制粘贴下面代码
    在这里插入图片描述
const responseJson = pm.response.json();
pm.collectionVariables.set("token", responseJson.data);

说明:Tests 是在响应返回后执行。也就是可以将返回的 token 设置到 Collection 变量 token 中。这样 整个 Collection 中的接口都可以得到这个变量的值。也就是都可以使用 登录接口返回的 token 了。

  1. 测试:随便切个环境
    在这里插入图片描述
  2. 验证:到 Collection 的 Auth ,鼠标悬停在 变量上,有值证明生效了
    在这里插入图片描述

4.1 验证:查看别的接口的 Headers,有在 Collection 中设置的 Auth 表示成功了。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值