构建请求
授权请求
接收响应
对集合中的请求进行分组
使用变量
管理环境
可视化响应
指定示例
使用 cookie
使用证书
生成客户端代码
故障排除请求
变量是数据的符号表示,使您无需在需要的任何地方手动输入值即可访问值。如果您在多个地方使用相同的值,这会很有用。变量通过抽象细节使您的请求更加灵活和可读。
例如,如果您在多个请求中具有相同的 URL,但该 URL 稍后可能会更改,您可以将 URL 存储在一个变量
base_url
中并在您的请求中使用
{{base_url}}
. 如果 URL 发生变化,您可以更改变量值,它将反映在您的整个集合中,无论您使用了变量名称。
同样的原则适用于您的请求中重复数据的任何部分。无论您在请求运行时引用该变量的任何位置,都将包含存储在变量中的任何值。如果基本 URL 值是
https://postman-echo.com
,并且被列为请求 URL 的一部分
{{base_url}}/get
,Postman 会将请求发送到
https://postman-echo.com/get
.
Postman 中的变量是键值对。每个变量名代表它的键,所以引用变量名可以访问它的值。
您可以使用变量在请求和测试之间传递数据,例如,如果您在集合中
链接请求。
您可以使用环境将变量集组合在一起并与协作者共享它们,例如,如果您将一组配置详细信息用于生产服务器,另一组用于测试。有关如何将环境整合到团队工作流程中的更多信息,请参阅
管理环境。
Postman 支持不同范围的变量,允许您针对各种开发、测试和协作任务定制处理。Postman 中的作用域与您的请求运行的不同上下文相关,不同的变量作用域适用于不同的任务。
从最宽到最窄的顺序,这些范围是:
global
、
collection
、
environment
、
data
和
local
。
全局变量
使您能够访问集合、请求、测试脚本和环境之间的数据。全局变量在整个
工作区
中都可用。由于全局变量在 Postman 中具有最广泛的可用范围,因此它们非常适合测试和原型设计,但在以后的开发阶段应使用更具体的范围。
集合变量
在集合中的整个请求中都可用,并且独立于环境。集合变量不会根据所选环境而改变。如果您使用单一环境,例如用于身份验证或 URL 详细信息,则集合变量是合适的。
环境变量
使您能够将工作范围限定到不同的环境,例如本地开发与测试或生产。一次可以激活一个环境。如果你有一个单一的环境,使用集合变量会更有效,但是环境允许你指定
基于角色的访问级别
。
数据变量
来自外部 CSV 和 JSON 文件,用于定义在使用
Newman
或
Collection Runner
运行集合时可以使用的数据集。数据变量具有当前值,在请求或收集运行之后不会持续存在。
局部变量
是在请求脚本中访问的临时变量。局部变量值的范围仅限于单个请求或收集运行,并且在运行完成后不再可用。如果您需要一个值来覆盖所有其他变量范围但不希望该值在执行结束后持续存在,则局部变量是合适的。
如果在两个不同的作用域中声明了同名变量,则将使用存储在具有最窄作用域的变量中的值。例如,如果有一个名为 的全局变量
username
和一个名为 的局部变量
username
,则请求运行时将使用局部值。
Postman 将变量存储为字符串。如果您存储对象或数组,请
JSON.stringify()
在存储之前记住它们,并
JSON.parse()
在检索它们时记住它们。
除了范围之外,全局变量和环境变量也可以按类型定义。您可以为全局变量和环境变量配置的两种变量类型是:
默认类型
自动分配给变量。此类型显示为纯文本,没有其他属性。
秘密类型
掩盖了所有工作区成员的
初始值和当前值
,可用于防止无意泄露敏感数据,包括 API 秘密、密码、令牌和密钥。
对工作区(用于全局变量)或环境(用于环境变量)具有
编辑器
访问权限的用户可以选择将这些变量从默认类型更改为机密类型。
无论您为变量配置什么类型,Postman 都将变量作为字符串存储在其服务器上。要了解 Postman 如何保护您的数据安全,请参阅
Postman
的安全性。
要将变量类型设置为机密:
选择Postman 右上角的环境快速查看。
选择环境或全局变量右侧的
编辑
以打开编辑器。
您还可以通过导航到环境所在的工作区并从左侧边栏中选择
环境来编辑环境,然后选择您的环境。
选择要更改的变量旁边的
默认值以打开下拉列表,然后选择
秘密
以更新变量类型。
选择
保存
以确认您的更改。
从秘密更改为默认变量类型
您必须对工作区(对于全局变量)或环境(对于环境变量)具有
编辑器访问权限才能控制变量类型。
编辑者可以随时将变量类型从秘密更改为默认值,反之亦然。当您将变量的类型从秘密更改回默认值时,您必须通过选择
更改类型
进行确认。
查看和更改秘密变量值
所有工作区成员都可以通过选择变量右侧的眼睛符号来查看秘密变量的初始值和当前值。
编辑者可以更改与协作者共享的变量的初始值,方法是选择
变量右侧的眼睛符号,然后选择初始值。所有协作者都可以通过选择
变量右侧的眼睛符号,然后选择当前值来更改变量的当前值。
您可以通过多种方式定义变量,具体取决于您是否需要
全局
、
环境
或
集合
范围。
您还可以在请求构建器的任何范围内定义变量:
选择您需要的数据,例如在地址、参数、标题或正文中。选择
设置为变量
。
选择
设置为新变量
。
输入
Name
,验证
Value
,然后从下拉列表中选择一个范围。选择
设置变量
。
您还可以通过选择右上角的
环境快速查看来查看全局变量。
环境快速查看显示所选环境以及工作区中的全局变量。您可以通过选择值在线编辑现有变量的当前值。要添加变量,请选择全局部分旁边的
编辑。
添加一个新的全局变量:
选择
添加新变量
,然后输入变量的名称。
为新变量选择
类型
。
添加一个
Inital Value
,如果您选择,添加一个
Current Value
。
选择
保存
以确认您的更改。
要编辑现有的全局变量:
更改所需的变量值。
选择
保存
以确认您的更改。
您还可以
在脚本中定义全局变量
。
下载全局环境
要将全局变量下载为 JSON:
在左侧边栏中选择
环境。
选择
全局变量
。
选择
导出
。
选择保存文件的位置,然后选择
保存
。
定义环境变量
查看环境变量:
在左侧边栏中选择
环境。
选择要查看其变量的环境。
您还可以通过选择右上角的
环境快速查看来查看环境变量。
环境快速查看显示所选环境以及工作区中的全局变量。您可以通过选择值在线编辑现有变量的当前值。要添加变量,请选择环境部分旁边的
编辑。
添加一个新的环境变量:
选择
添加新变量
,然后输入变量的名称。
为新变量选择
类型
。
添加一个
Inital Value
,如果您选择,添加一个
Current Value
。
选择
保存
以确认您的更改。
要编辑现有环境变量:
更改所需的变量值。
选择
保存
以确认您的更改。
如果您对环境具有编辑者访问权限,则可以添加和编辑变量。
如果您对环境具有查看者访问权限,则只能更新现有变量的
当前值
。您可以访问您编辑的任何变量,但您的
工作区
中的协作者无法访问。
有关在团队中使用环境的更多信息,请参阅
管理环境。
您还可以
在脚本中定义环境变量
。
定义集合变量
您可以在创建集合时或之后的任何时间添加集合变量。
要为现有集合创建或编辑变量:
在左侧边栏中选择
集合。
选择一个集合,然后选择
变量
选项卡。
如果您没有收藏的编辑权限,您将看到一个
请求访问
按钮。您将无法添加新的集合变量、更新初始值或保留值。您可以编辑当前值以供本地使用,使用同名的环境变量覆盖集合变量,或
请求编辑器访问
集合。
您还可以
在脚本中定义集合变量
。
在脚本中定义变量
您可以在请求脚本中以编程方式设置变量。
pm.collectionVariables
用于定义集合变量。
pm.collectionVariables.set("variable_key", "variable_value");
pm.environment
用于在当前选择的环境中定义一个环境变量。
pm.environment.set("variable_key", "variable_value");
pm.variables
用于定义局部变量。
pm.variables.set("variable_key", "variable_value");
unset
您可以使用
unset
删除变量。
pm.environment.unset("variable_key");
有关如何在预请求或测试脚本中使用变量的说明,请参阅
在脚本中使用变量
。
指定变量详细信息
您可以随时添加和编辑变量。新变量只需要包含一个名称。您可以选择提供初始值,但您也可以稍后设置它,包括从
脚本
。使用变量左侧的复选框来激活或停用变量。
共享集合或环境时共享初始值。当前值是本地的,不同步或共享。有关本地变量与同步变量的更多信息,请参阅
共享和持久化数据
。
您可以使用双花括号来引用整个 Postman 中的变量。例如,要在请求授权设置中引用名为“用户名”的变量,您可以使用以下语法,并在名称周围加上双花括号:
当您运行请求时,Postman 将解析变量并将其替换为当前值。
例如,您可以有一个引用变量的请求 URL,如下所示:
https: / / postman- echo. com/ get? customer_id= { { cust_id} }
cust_id
Postman 将在请求运行时发送您当前为变量存储的任何值。如果
cust_id
是 current
3
,请求将被发送到以下 URL,包括查询参数:
https: / / postman- echo. com/ get? customer_id= 3
如果您想从请求正文中访问变量,请将其引用括在双引号中:
{ "customer_id" : "{{cust_id}}" }
您可以在请求 URL、参数、标头、授权、正文和标头预设中使用变量。
当您将鼠标悬停在变量上时,您可以看到其当前状态的概览。当您在请求中输入变量时,Postman 会提示您当前定义的任何变量。
提示指示当前值、范围(以颜色突出显示)和相关的覆盖状态。
如果变量未解析,Postman 会以红色突出显示它。有关如何修复未解析变量的信息,请参阅
修复未解析变量
。
使用动态变量
Postman 提供了可以在请求中使用的动态变量。
动态变量的示例包括:
{{$guid}}
: v4 风格的 GUID
{{$timestamp}}
: 当前的 Unix 时间戳,以秒为单位
{{$randomInt}}
: 0 到 1000 之间的随机整数
有关完整列表,请参阅
动态变量
部分。
在脚本中使用变量
您可以使用表示范围级别的对象和方法来检索脚本中变量的当前值
.get
:
pm. variables. get ( "variable_key" ) ;
pm. globals. get ( "variable_key" ) ;
pm. collectionVariables. get ( "variable_key" ) ;
pm. environment. get ( "variable_key" ) ;
使用
pm.variables.get()
访问脚本中的变量可以让您在不影响脚本功能的情况下更改变量范围。此方法将返回当前具有最高优先级(或最窄范围)的任何变量。
要在预请求或测试脚本中使用
动态变量
pm.variables.replaceIn()
,请使用
pm.variables.replaceIn('{{$randomFirstName}}')
.
有关使用变量编写脚本的更多详细信息,请参阅
沙盒参考
。
您可以在请求运行时将变量值记录到
Postman 控制台。
在脚本中使用以下语法记录变量的值:
console. log ( pm. variables. get ( "variable_key" ) ) ;
要查看结果,请从 Postman 左下方的按钮或
查看
菜单中打开控制台。
使用数据变量
Collection Runner 允许您导入 CSV 或 JSON 文件,并在请求和脚本中使用数据文件中的值。您不能在 Postman 中设置数据变量,因为它是从数据文件中提取的,但您可以在脚本中访问数据变量,例如使用
pm.iterationData.get("variable_name")
.
有关更多详细信息,请参阅
使用数据文件
和
沙盒 API 参考
。
共享和持久化数据
当您在 Postman 中编辑全局、集合和环境变量时,您将看到一个
当前值
,您可以选择为单个变量
保留
或
重置
。您还可以选择
Persist All
或
Reset All
将此设置应用于所有变量。这些使您能够控制本地 Postman 实例中发生的事情,而与数据如何与共享您的工作区、请求、集合和环境的任何人同步无关。
创建或编辑变量时,可以输入初始值和当前值。在 Postman 中创建新变量时,如果将当前值留空,它将自动填充初始值。如果您指定一个当前值,它将是您的实例的本地值。
Persist
选项允许您将当前值推送到共享数据,更新初始值以匹配当前值。
如果您没有环境的编辑者访问权限,则无法编辑环境变量的初始值。您可以编辑当前值,并且共享您的
工作区
的任何人都看不到您的编辑。
使用
Persist
可以使您的当前值与 Postman 的服务器
同步
,并反映给共享您的收藏或环境的任何人。要重置您当前的本地值以反映初始共享值,请使用
Reset
。
要保留单个值:
将鼠标悬停在变量的当前值上。
选择值旁边的三个点。
选择
坚持
。
您在 Postman 中的本地会话可以使用对您来说是短暂且可见的值,但不会与您的团队同步或共享。这使您可以使用私有凭据或实验值进行开发和测试,而不会暴露这些细节或影响团队中的其他人。
例如,您的团队可能有一个共享的 API 密钥和单独的 API 密钥。您可以使用个人密钥在本地进行实验性开发工作,但使用共享密钥进行团队协作。同样,您可以有一个变量来表示您正在本地进行的探索性工作,但尚未准备好与团队共享。您可以稍后选择保留本地数据,以便团队中的其他人也可以访问它。
您可以从Postman 右上角的
环境快速查看
内联编辑当前值。
有关作为团队使用变量的更多信息,请参阅
管理环境
。
本地和数据变量具有当前值,在请求或收集运行之后不会持续存在。
修复未解决的变量
未
解析
的变量是未在可用于使用它的请求的
活动范围(环境、集合或全局变量)中定义的变量。
例如,对于 request
https://postman-echo.com/get?customer_id={{cust_id}}
,Postman 希望能够
{{cust_id}}
在请求使用的环境中、在保存请求的集合中或在全局级别找到定义。因此,如果 Postman 在其中一个范围内没有找到定义
{{cust_id}}
,则会将该变量标记为未解析。如果您发送包含未解析变量的请求,该请求可能会失败。
由于以下几个原因,变量可能无法解析:
该变量不存在于请求的
活动范围内
变量已创建,但未保存更改
变量所在的环境未激活
变量在活动环境中被关闭
当您处理 API 请求时,Postman 会在
URL 构建器
、
Params
选项卡、
Authorization
选项卡和
Headers
选项卡中突出显示未解析的变量。Postman 以红色突出显示未解析的变量文本。要查看有关错误的更多详细信息以及如何解决它,请将鼠标悬停在未解决的变量上。
要检查变量是否可用并且在请求的范围内:
选择
集合
或
全局
链接之一。要打开环境,请使用 **select an
environment
链接。
打开或对变量的值进行必要的更改。
选择
保存
以确认您的更改。
如果变量因为不存在而无法解析:
选择
添加新变量
。
输入
名称
,验证变量的
值
,然后从下拉列表中选择适当的
范围
(全局、集合或环境)。
选择
设置变量
。
在脚本中以编程
方式定义的变量根据变量范围以不同方式解析。这意味着未解决的变量也将以不同的方式处理。使用以编程方式设置的局部变量
pm.variables.set
可能看起来无法解析,因为它们没有被存储并且仅在运行时使用,但如果它们被正确设置和使用,请求仍然会成功运行。以编程方式设置的环境、全局和集合变量将保存以供以后使用,因此如果设置和使用正确,它们将得到解决。根据脚本中未解析变量的使用方式,您可能会收到
400 Bad Request
来自 API 的错误响应,或者 Postman 可能根本无法发送请求。打开
控制台
帮助识别脚本中未解决的变量。
有关如何管理和共享可变数据集的概述,请参阅
管理环境
。查看
Intro to scripts
了解更多关于在请求脚本中使用变量的信息,查看
对集合中的请求进行分组
了解更多关于如何在请求之间使用数据的信息。