前言
Postman 是一款强大的API测试工具,广泛应用于API开发和测试中。自定义变量是 Postman 中的重要功能,能够让测试过程更加灵活和高效。本文将详细介绍如何定义、使用和管理 Postman 中的自定义变量,包括全局变量、环境变量、集合变量和本地变量。
自定义变量类型
- 全局变量(Global Variables)
- 在整个 Postman 中都可以访问,不局限于某个集合或环境。
- 环境变量(Environment Variables)
- 在特定的环境中可以访问,用于区分不同的测试环境(如开发、测试、生产环境)。
- 集合变量(Collection Variables)
- 只在特定集合中可以访问,用于该集合中的所有请求。
- 本地变量(Local Variables)
- 只在单个请求或脚本中可以访问,生命周期仅限于当前请求执行期间。
变量的定义
定义全局变量
- 访问全局变量:
在 Postman 主界面,点击右上角的齿轮图标,选择“Manage Environments”。
在弹出的窗口中,选择“Globals”选项卡。
- 添加全局变量:
点击“Add”按钮,输入变量名称和值。
例如,添加一个名为
globalUrl
的变量,值为https://api.global.com
。点击“Save”保存。
定义环境变量
- 创建环境:
- 在“Manage Environments”窗口中,点击“Add”按钮创建新环境。
- 输入环境名称,例如“Development”。
- 添加环境变量:
- 在新建环境中,输入变量名称和值。
- 例如,添加一个名为
envUrl
的变量,值为https://api.dev.com
。 - = 点击“Save”保存。
定义集合变量
- 创建集合:
- 打开 Postman,点击左侧导航栏的“Collections”选项卡,然后点击“Create a collection”按钮,创建一个新的集合。
- 添加集合变量:
- 在新建的集合上点击右键,选择“Edit”。
- 在编辑窗口中,选择“Variables”选项卡。
- 添加变量名称和值,例如
collectionUrl
,值为https://api.collection.com
。 - 点击“Save”保存。
定义本地变量
- 本地变量的定义和使用仅限于脚本中,可以通过 Pre-request Script 或 Tests 脚本定义。
变量的使用
- 在请求中使用变量:
- 在请求的 URL、Headers、Body 等部分使用变量,变量的格式为
{ {variableName}}
。 - 例如,在请求 URL 中使用
{ {globalUrl}}/users
、{ {envUrl}}/users
或{ {collectionUrl}}/users
。
- 在脚本中使用变量:
在 Pre-request Script 或 Tests 脚本中,使用
pm.variables.get("variableName")
获取变量值。例如:
let url = pm.variables.get("globalUrl");
console.log(url);
管理和优先级
- 变量的优先级:
- 本地变量 > 数据变量 > 环境变量 > 集合变量 > 全局变量。
- 当多个变量名相同时,Postman 会优先使用作用域较小的变量。
- 动态设置和更新变量:
- 在 Pre-request Script 或 Tests 脚本中,可以动态设置和更新变量值。
- 例如,设置集合变量:
pm.collectionVariables.set("token", "new_value");
- 设置环境变量:
pm.environment.set("envVar", "new_value");
示例
- 示例请求:
- 创建一个 GET 请求,URL 为
{ {envUrl}}/users
。 - 添加一个
Headers
,键为Authorization
,值为Bearer { {token}}
。
- 脚本设置变量:
在 Pre-request Script 中设置 token
变量:
pm.environment.set("token", "your_generated_token");
- 运行请求:
- 发送请求,确保变量正确替换,获取用户信息。
常见问题及解决
- 变量未替换:
- 确保变量名称拼写正确,变量值已定义。
- 确保正确设置了环境和集合。
- 变量冲突:
检查变量的优先级,避免同名变量在不同作用域产生冲突。
总结
通过本文的详细介绍,相信您已经掌握了 Postman 自定义变量的定义、使用和管理方法。合理利用自定义变量,可以显著提高API测试的效率和灵活性。