1. 概述

在Postman中,变量让我们能保存值并在不同API中按需使用。我们可以通过将这些值传递给集合、环境或任何请求来引用它们。本质上,变量让我们能更高效地访问存储的值。此外,我们还可以利用这些变量与团队成员协作或在Postman中设置动态工作流

本文将深入探讨变量的类型、作用域以及如何将它们嵌入API中。

2. 什么是变量?

变量是数据的符号化表示,让我们无需手动输入即可在需要的地方访问值。当需要在多个位置使用相同值时(如基础URL、令牌或路径参数),变量就特别有用。使用变量还能让请求更灵活——修改变量值会自动更新所有使用该变量的位置。

在Postman中,变量被定义为键值对。键是变量名,通过它可以直接访问对应的值

此外,我们还可以使用环境来设置一组变量。这些变量的值会根据所选环境而变化。

下面深入探讨变量及其不同作用域:

2.1. 变量作用域

Postman提供多种作用域,让我们能在不同环境中使用不同值进行开发和测试。按覆盖范围从广到窄排列:

  • 全局变量:在整个工作空间内都可访问,作用域最广。可在工作空间内的多个请求和集合中使用。
  • 集合变量:仅在特定集合内可访问。集合内的所有请求都能使用,且不随环境变化而改变。
  • 环境变量:根据不同环境限定作用域。当我们切换环境(如本地、测试或生产环境)时,这些变量值会随之改变。
  • 数据变量:外部变量类型,在使用Collection Runner运行集合时定义数据集。可从CSV或JSON文件提取。其当前值在请求或集合执行后不会持久化
  • 局部变量:也称临时变量,仅能通过请求脚本访问。作用域仅限于当前请求或集合,执行完成后即失效。

2.2. 变量类型

全局变量和环境变量可进一步分类:

  • 默认类型:变量的默认类型,以纯文本形式显示,无额外属性。
  • 密钥类型:类似密码,在所有工作空间中隐藏初始值和当前值。用于防止敏感数据意外泄露

3. 按作用域定义变量

我们可以在请求构建器的任意作用域定义变量。具体步骤如下

  1. 选中文本后点击"设为变量"(Set as a variable
  2. 将其存储为新变量
  3. 输入键名并从Postman提供的不同作用域中选择:

设置变量作用域

3.1. 将响应体设为变量

请求响应体中的值也可以设置为变量,并在集合中后续使用。这有助于按顺序运行多个请求并创建特定工作流。

操作步骤:

  1. 选中要保存的文本
  2. 右键(或Control+单击)选择"存储为变量"
  3. 从环境、局部或全局等作用域中选择
  4. 命名变量并保存:

响应体设为变量

3.2. 定义全局变量

设置全局变量的两种方式:

  1. 直接创建
    • 在全局变量区域点击"添加新变量"
    • 输入变量名后保存
  2. 从现有值创建
    • 选中值后选择"全局"类型存储
  3. 别忘记点击保存图标 Save icon 确认更改

导出共享全局变量

  1. 在侧边栏选择"全局"环境类型
  2. 点击"导出"按钮将变量导出到文件
  3. 保存文件后即可分享

3.3. 定义环境变量

设置环境变量的步骤:

  1. 点击"添加新变量"
  2. 输入变量名
  3. 选择类型为"环境"
  4. 指定初始值和当前值
  5. 点击保存图标 Save icon 确认

3.4. 定义集合变量

Postman允许添加集合变量:

  1. 在侧边栏选择"集合"
  2. 点击"变量"标签页
  3. 添加集合变量:

定义集合变量

3.5. 在脚本中定义变量

除了通过界面定义,还可以在请求脚本中编程设置变量。所有方法都接受(variable_key, variable_value)参数:

  1. pm.globals定义全局变量
    pm.globals.set("variable_key", "variable_value");
    
  2. pm.collectionVariables定义集合作用域变量
    pm.collectionVariables.set("variable_key", "variable_value");
    
  3. pm.environment定义当前环境变量
    pm.environment.set("variable_key", "variable_value");
    
  4. pm.variables定义局部/临时变量
    pm.variables.set("variable_key", "variable_value");
    
  5. unset删除已设置的变量(根据作用域选择对象)
    pm.environment.unset("variable_key");
    

3.6. 在脚本中使用变量

使用以下方法获取变量当前值:

  1. pm.variables.get("variable_key"):访问任意作用域变量(包括局部)
  2. pm.globals.get("variable_key"):访问全局变量
  3. pm.collectionVariables.get("variable_key"):访问集合变量
  4. pm.environment.get("variable_key"):访问环境变量

关键点pm.variables.get()会自动返回优先级最高的变量值,无需手动指定作用域。

4. 使用变量

定义好变量后,来看看如何在请求路径和请求体中使用:

在Postman中引用变量时,用双花括号包裹变量名。无论变量类型和作用域如何,这是Postman的通用标准语法:

{{studentName}}

当运行CURL或发送请求时,Postman会自动解析变量并替换为当前值。以下URL引用了变量:

http://localhost:8080/get?student_name={{studentName}}

假设studentName的值为"John",Postman会自动将其转换为:

http://localhost:8080/get?student_name=John

5. 总结

本文通过GUI模式演示了Postman变量的基础用法,并深入探讨了:

  • 变量的类型与作用域
  • 在URI、请求体、请求头等位置初始化变量
  • 通过脚本动态操作变量

核心优势:避免重复初始化相同值,显著提升开发效率。对于需要多环境协作的团队,变量功能更是必不可少——简单粗暴但极其实用!


原始标题:A Guide to Variables in Postman