【API接口工具】postman-变量定义、使用详解
变量
变量是数据的符号表示,使您无需在需要的任何地方手动输入值即可访问值。如果您在多个地方使用相同的值,这会很有用。变量通过抽象细节使您的请求更加灵活和可读。
例如,如果您在多个请求中具有相同的 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
- 全局变量 global 使您能够访问集合、请求、测试脚本和环境之间的数据。全局变量在整个工作区中都可用。由于全局变量在 Postman 中具有最广泛的可用范围,因此它们非常适合测试和原型设计。在以后的开发阶段,使用更具体的范围。
- 集合变量 collection 在集合中的整个请求中都可用,并且独立于环境。集合变量不会根据所选环境而改变。如果您使用单一环境,例如用于身份验证或 URL 详细信息,则集合变量是合适的。
- 环境变量 environment 使您能够将工作范围限定到不同的环境,例如本地开发与测试或生产。一次可以激活一个环境。如果你有一个单一的环境,使用集合变量会更有效,但是环境允许你指定基于角色的访问级别。
- 数据变量 data来自外部 CSV 和 JSON 文件,用于定义在使用Newman或Collection Runner运行集合时可以使用的数据集。数据变量具有当前值,在请求或收集运行之后不会持续存在。
- 局部变量 local是在请求脚本中访问的临时变量。局部变量值的范围仅限于单个请求或收集运行,并且在运行完成后不再可用。如果您需要一个值来覆盖所有其他变量范围但不希望该值在执行结束后持续存在,则局部变量是合适的。
如果在两个不同的作用域中声明了同名变量,则将使用存储在具有优先级作用域的变量中的值。例如,如果有一个名为 的global变量username和一个名为的local变量username,则请求运行时将使用局部值。
Postman
将变量存储为字符串。如果您存储对象或数组,请JSON.stringify()在存储之前记住它们,并JSON.parse()在检索它们时记住它们。
变量类型
除了范围之外,全局变量和环境变量也可以按类型定义。您可以为全局变量和环境变量配置的两种变量类型是:
- default 默认类型自动分配给变量。此类型显示为纯文本,没有其他属性。
- secret秘密类型掩盖了所有工作区成员的初始值和当前值,可用于防止无意泄露敏感数据,包括 API 秘密、密码、令牌和密钥。
对工作区(用于全局变量)或环境(用于环境变量)具有编辑器访问权限的用户可以选择将这些变量从默认类型更改为机密类型。
无论您为变量配置什么类型,Postman 都将变量作为字符串存储在其服务器上。要了解 Postman 如何保护您的数据安全
变量定义
您可以通过多种方式定义变量,具体取决于您是否需要全局、环境或集合范围。
您还可以在请求构建器的任何范围内定义变量:
-
选择您需要的数据,例如在地址、参数、标题或正文中。选择设置为变量。
-
选择设置为新变量。
-
输入Name,确认Value正确,然后选择范围。选择设置变量。
请记住删除不再使用的变量。
定义全局变量
查看全局变量:
- 在边栏中选择环境
- 选择全局变量。
添加一个新的全局变量:
- 选择添加新变量,然后输入变量的名称。
- 为新变量选择类型。
- 添加一个Initial Value,如果您选择,添加一个Current Value。
- 选择保存以确认您的更改
要编辑现有的全局变量:
- 更改所需的变量值。
- 选择 保存以确认您的更改。
- 您还可以在脚本中定义全局变量
下载全局环境
要将全局变量下载为 JSON:
在边栏中选择环境。
选择全局变量。
选择导出。
选择保存文件的位置,然后选择保存
定义环境变量
添加一个新的环境变量:
- 选择添加新变量,然后输入变量的名称。
- 为新变量选择类型。
- 添加一个Initial Value,如果您选择,添加一个Current Value。
- 选择 保存以确认您的更改
定义集合变量
您可以在创建集合时或之后的任何时间添加集合变量。
要为现有集合创建或编辑变量:
在边栏中选择收藏。
选择一个集合,然后选择变量选项卡。
在脚本中定义变量
您可以在请求脚本中以编程方式设置变量
方法 | 用例 | 例子 |
---|---|---|
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 | 用于定义局部变量。 | pm.variables.set(“variable_key”, “variable_value”); |
unset | 您可以使用unset删除变量 | pm.environment.unset(“variable_key”); |
变量使用
您可以使用双花括号来引用整个 Postman 中的变量。例如,要在请求授权设置中引用名为“用户名”的变量,您可以使用以下语法,并在名称周围加上双花括号:
{{username}}
当您运行请求时,Postman 将解析变量并将其替换为当前值。
例如,您可以有一个引用变量的请求 URL,如下所示:
https://postman-echo.com/get?customer_id={{cust_id}}
cust_idPostman 将在请求运行时发送您当前为变量存储的任何值。如果cust_id是 current 3,请求将被发送到以下 URL,包括查询参数:
https://postman-echo.com/get?customer_id=3
如果您想从请求正文中访问变量,请将其引用括在双引号中:
{ "customer_id" : "{{cust_id}}" }
您可以在请求 URL、参数、标头、授权、正文和标头预设中使用变量。
使用动态变量
Postman 提供了可以在请求中使用的动态变量。
动态变量的示例包括:
- {{$guid}}: v4 风格的 GUID
- {{$timestamp}}: 当前的 Unix 时间戳,以秒为单位
- {{$randomInt}}: 0 到 1000 之间的随机整数
在脚本中使用变量
您可以使用表示范围级别的对象和方法来检索脚本中变量的当前值.get:
//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");
使用pm.variables.get()访问脚本中的变量可以让您在不影响脚本功能的情况下更改变量范围。此方法将返回当前具有最高优先级(或最窄范围)的任何变量。
要在预请求或测试脚本中使用动态变量pm.variables.replaceIn(),请使用pm.variables.replaceIn(‘{{$randomFirstName}}’).
记录变量
您可以在请求运行时将变量值记录到Postman 控制台
在脚本中使用以下语法记录变量的值:
console.log(pm.variables.get("variable_key"));
要查看结果, 请在页脚中选择控制台图标 控制台。您还可以从View menu > Show Postman Console访问控制台。
使用数据变量
Collection Runner 允许您导入 CSV 或 JSON 文件,并在请求和脚本中使用数据文件中的值。您不能在 Postman 中设置数据变量,因为它是从数据文件中提取的,但您可以在脚本中访问数据变量,例如使用pm.iterationData.get(“variable_name”).
共享和持久化数据
当您在 Postman 中编辑全局、集合和环境变量时,您将看到一个当前值,您可以选择为单个变量保留或重置。您还可以选择Persist All或Reset All将此设置应用于所有变量。这些使您能够控制本地 Postman 实例中发生的事情,而与数据如何与共享您的工作区、请求、集合和环境的任何人同步无关。
创建或编辑变量时,可以输入初始值和当前值。在 Postman 中创建新变量时,如果将当前值留空,它将自动填充初始值。如果您指定一个当前值,它将是您的实例的本地值。Persist选项允许您将当前值推送到共享数据,更新初始值以匹配当前值。
使用Persist可以使您的当前值与 Postman 的服务器同步,并反映给共享您的收藏或环境的任何人。要重置您当前的本地值以反映初始共享值,请使用Reset。
要保留单个值:
将鼠标悬停在变量的当前值上。
更多操作图标 选择值旁边的更多操作图标 。
选择坚持。
您在 Postman 中的本地会话可以使用对您来说是短暂且可见的值,但不会与您的团队同步或共享。这使您可以使用私有凭据或实验值进行开发和测试,而不会暴露这些细节或影响团队中的其他人。
例如,您的团队可能有一个共享的 API 密钥和单独的 API 密钥。您可以使用个人密钥在本地进行实验性开发工作,但使用共享密钥进行团队协作。同样,您可以有一个变量来表示您正在本地进行的探索性工作,但尚未准备好与团队共享。您可以稍后选择保留本地数据,以便团队中的其他人也可以访问它。
快速查看图标 您可以使用Postman 右上角的环境快速查看图标在线编辑当前值 。
本地和数据变量具有当前值,在请求或收集运行之后不会持续存在。
由于以下几个原因,变量可能无法解析:
- 该变量不存在于请求的活动范围内
- 变量已创建,但未保存更改
- 变量所在的环境未激活
- 变量在活动环境中被关闭
自研产品推荐
历时一年半多开发终于smartApi-v1.0.0版本在2023-09-15晚十点正式上线
smartApi是一款对标国外的postman的api调试开发工具,由于开发人力就作者一个所以人力有限,因此v1.0.0版本功能进行精简,大功能项有:
- api参数填写
- api请求响应数据展示
- PDF形式的分享文档
- Mock本地化解决方案
- api列表数据本地化处理
- 再加上UI方面的打磨
为了更好服务大家把之前的公众号和软件激活结合,如有疑问请大家反馈到公众号即可,下个版本30%以上的更新会来自公众号的反馈。
嗯!先解释不上服务端原因,API调试工具的绝大多数时候就是一个数据模型、数据处理、数据模型理解共识的问题解决工具,所以作者结合自己十多年开发使用的一些痛点来打造的,再加上服务端开发一般是面向企业的,作者目前没有精力和时间去打造企业服务。再加上没有资金投入所以服务端开发会滞后,至于什么时候会进行开发,这个要看募资情况和用户反馈综合考虑。虽然目前国内有些比较知名的api工具了,但作者使用后还是觉得和实际使用场景不符。如果有相关吐槽也可以在作者的公众号里反馈蛤!
下面是一段smartApi使用介绍: