Postman 自定义变量使用详解

简介: Postman是一款强大的API测试工具,支持全局、环境、集合和本地四种变量类型,方便不同场景的测试需求。定义变量涉及全局(在“Manage Environments”>“Globals”),环境(创建新环境并添加),集合(编辑集合>“Variables”),以及脚本内定义的本地变量。使用变量时以`{{variableName}}`格式插入,通过`pm.variables.get()`在脚本中获取。变量优先级:本地>数据>环境>集合>全局,可在Pre-request或Tests脚本中动态设置。掌握变量使用能提升测试效率。

image.png

前言

Postman 是一款强大的API测试工具,广泛应用于API开发和测试中。自定义变量是 Postman 中的重要功能,能够让测试过程更加灵活和高效。本文将详细介绍如何定义、使用和管理 Postman 中的自定义变量,包括全局变量、环境变量、集合变量和本地变量。

自定义变量类型

  1. 全局变量(Global Variables)
  • 在整个 Postman 中都可以访问,不局限于某个集合或环境。
  1. 环境变量(Environment Variables)
  • 在特定的环境中可以访问,用于区分不同的测试环境(如开发、测试、生产环境)。
  1. 集合变量(Collection Variables)
  • 只在特定集合中可以访问,用于该集合中的所有请求。
  1. 本地变量(Local Variables)
  • 只在单个请求或脚本中可以访问,生命周期仅限于当前请求执行期间。

变量的定义

定义全局变量

  1. 访问全局变量:
  • 在 Postman 主界面,点击右上角的齿轮图标,选择“Manage Environments”。

  • 在弹出的窗口中,选择“Globals”选项卡。

  1. 添加全局变量:
  • 点击“Add”按钮,输入变量名称和值。

  • 例如,添加一个名为 globalUrl的变量,值为 https://api.global.com

  • 点击“Save”保存。

定义环境变量

  1. 创建环境:
  • 在“Manage Environments”窗口中,点击“Add”按钮创建新环境。
  • 输入环境名称,例如“Development”。
  1. 添加环境变量:
  • 在新建环境中,输入变量名称和值。
  • 例如,添加一个名为 envUrl 的变量,值为https://api.dev.com
  • = 点击“Save”保存。

定义集合变量

  1. 创建集合:
  • 打开 Postman,点击左侧导航栏的“Collections”选项卡,然后点击“Create a collection”按钮,创建一个新的集合。
  1. 添加集合变量:
  • 在新建的集合上点击右键,选择“Edit”。
  • 在编辑窗口中,选择“Variables”选项卡。
  • 添加变量名称和值,例如 collectionUrl,值为https://api.collection.com
  • 点击“Save”保存。

定义本地变量

  • 本地变量的定义和使用仅限于脚本中,可以通过 Pre-request Script 或 Tests 脚本定义。

变量的使用

  1. 在请求中使用变量:
  • 在请求的 URL、Headers、Body 等部分使用变量,变量的格式为 { {variableName}}
  • 例如,在请求 URL 中使用 { {globalUrl}}/users{ {envUrl}}/users{ {collectionUrl}}/users
  1. 在脚本中使用变量:
  • 在 Pre-request Script 或 Tests 脚本中,使用 pm.variables.get("variableName") 获取变量值。

  • 例如:

let url = pm.variables.get("globalUrl");
console.log(url);

管理和优先级

  1. 变量的优先级:
  • 本地变量 > 数据变量 > 环境变量 > 集合变量 > 全局变量。
  • 当多个变量名相同时,Postman 会优先使用作用域较小的变量。
  1. 动态设置和更新变量:
  • 在 Pre-request Script 或 Tests 脚本中,可以动态设置和更新变量值。
  • 例如,设置集合变量:
pm.collectionVariables.set("token", "new_value");
  • 设置环境变量:
pm.environment.set("envVar", "new_value");

示例

  1. 示例请求:
  • 创建一个 GET 请求,URL 为 { {envUrl}}/users
  • 添加一个 Headers,键为 Authorization,值为 Bearer { {token}}
  1. 脚本设置变量:

在 Pre-request Script 中设置 token 变量:

pm.environment.set("token", "your_generated_token");
  1. 运行请求:
  • 发送请求,确保变量正确替换,获取用户信息。

常见问题及解决

  1. 变量未替换:
  • 确保变量名称拼写正确,变量值已定义。
  • 确保正确设置了环境和集合。
  1. 变量冲突:

检查变量的优先级,避免同名变量在不同作用域产生冲突。

总结

通过本文的详细介绍,相信您已经掌握了 Postman 自定义变量的定义、使用和管理方法。合理利用自定义变量,可以显著提高API测试的效率和灵活性。

相关文章
|
5月前
|
测试技术 API
Postman 集合变量使用详解
**Postman 集合变量概览** 在API测试中,Postman的集合变量增强测试灵活性。它们定义在集合内,适用于该集合的所有请求,便于参数复用和环境切换。创建变量通过编辑集合->添加变量(Name, Initial Value, Current Value)。在请求URL、Headers等处以`{{variableName}}`引用。可在预请求/测试脚本中动态修改和读取变量。环境变量和集合变量可结合使用,作用域依次为全局→环境→集合→本地。利用集合变量优化API测试效率。
|
5月前
|
数据管理 测试技术 API
Postman变量使用指南
本文介绍了Postman中四种变量的使用,包括全局变量、环境变量、集合变量和局部变量,以提高API测试效率。全局变量适用于多环境共享,环境变量用于切换不同测试环境,集合变量针对特定集合,局部变量则在单个请求或脚本内使用。通过设置和管理这些变量,可以简化测试数据,便于维护测试脚本。
|
6月前
|
XML JSON 测试技术
如何用好Postman中的变量?
如何用好Postman中的变量?
Postman内置动态参数和自定义的动态参数以及断言方式
Postman内置动态参数和自定义的动态参数以及断言方式。每次请求均需手动修改参数时,使用动态参数:内置动态参数/自定义动态参数,解决上述问题
527 0
Postman内置动态参数和自定义的动态参数以及断言方式
|
XML 存储 JSON
如何用好Postman 中的 变量
大家好,我是阿萨。昨天给大家介绍了如何使用Postman 录制请求?相信可以录制请求后,大家写API 测试脚本就更方便了。只需要把录制好的请求,修改下参数以及断言,就可以是一个API的测试用例了。
159 0
如何用好Postman 中的 变量
|
JSON JavaScript 前端开发
Postman变量的使用,引入外部数据文件
Postman变量的使用,引入外部数据文件
Postman变量的使用,引入外部数据文件
|
存储 JSON 测试技术
Postman教程-变量、集合的基本使用
在postman的Pre-request Script中设置全局变量后,会把变量存储到全局变量中,删掉脚本后,变量仍然可以读取,如果用脚本设置全局变量的话,要注意不要在多个脚本中同时去设置相同的变量名,避免引起冲突,出现问题不好排查。
Postman教程-变量、集合的基本使用
|
4月前
|
JSON JavaScript 测试技术
Postman接口测试工具详解
Postman接口测试工具详解
199 1
|
2月前
|
JSON Java 数据格式
使用postMan调试接口出现 Content type ‘multipart/form-data;charset=UTF-8‘ not supported“
本文介绍了使用Postman调试接口时遇到的“Content type ‘multipart/form-data;charset=UTF-8’ not supported”错误,原因是Spring Boot接口默认只接受通过`@RequestBody`注解的请求体,而不支持`multipart/form-data`格式的表单提交。解决方案是在Postman中将请求体格式改为`raw`并选择`JSON`格式提交数据。
使用postMan调试接口出现 Content type ‘multipart/form-data;charset=UTF-8‘ not supported“
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
40 0