文章目录
一、变量
变量允许您在请求和脚本中存储和重用值。通过将值存储在变量中,您可以在整个集合、环境和请求中引用它——如果您需要更新该值,您只需在一个地方更改它。使用变量可以提高您高效工作的能力,并最大限度地减少出错的可能性。
在哪儿找到变量
右上角的小眼睛
为何要使用变量
-
如果您在多个请求中有相同的 URL——但 URL 可能会改变——您可以将它存储在一个变量中。如果 URL 发生变化,您只需要更改变量值,它就会反映在您的整个集合中,无论您在何处使用该变量名称。同样的原则适用于您请求中重复数据的任何部分。
-
您可以使用变量在请求和测试之间传递数据,例如,如果您使用集合链接请求。
变量作用范围
同 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 是在脚本中定义的。
在脚本中定义变量
- 使用pm.globals来定义一个全局变量:
pm.globals.set("variable_key", "variable_value");
- 使用pm.collectionVariables定义集合变量:
pm.collectionVariables.set("variable_key", "variable_value");
- 使用pm.environment定义的环境变量(在当前选择的环境):
pm.environment.set("variable_key", "variable_value");
- 使用 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}}: 0 到 1000 之间的随机整数
完整列表,查看动态变量。
二、环境
创建环境
将在 Postman 的右上角看到所选的环境状态,并在下拉列表中选择任何活动的环境。
创建环境之后可以在环境中添加环境变量。
选择当前生效环境
请从 Postman 右上角的下拉列表中选择它。
三、实践应用
0. 导入数据(此处使用 swagger url 导入)
1. 设置环境
新增环境
设置 环境变量
编辑完, Ctrl + S 保存
请注意 环境变量和 Collection 变量的生效优先级。
2. 为Collection 的 Auth 设置 Collection 变量
给 Auth 设置 token 变量 ,以满足每个 Collection 每次登录成功,这个 Collection 的所有接口都可以使用 token。
在登录接口的 Tests 的脚本中定义变量,在其对应的 Collection Authorization 中使用变量。
- 给 Collection 设置 Auth
- 找到登录接口,在 Tests 中复制粘贴下面代码
const responseJson = pm.response.json();
pm.collectionVariables.set("token", responseJson.data);
说明:Tests 是在响应返回后执行。也就是可以将返回的 token 设置到 Collection 变量 token 中。这样 整个 Collection 中的接口都可以得到这个变量的值。也就是都可以使用 登录接口返回的 token 了。
- 测试:随便切个环境
- 验证:到 Collection 的 Auth ,鼠标悬停在 变量上,有值证明生效了
4.1 验证:查看别的接口的 Headers,有在 Collection 中设置的 Auth 表示成功了。