Postman接口自动化测试--变量的使用

使用变量
变量使您可以在请求和脚本中存储和重用值。通过将值存储在变量中,可以在整个集合,环境和请求中引用它-如果需要更新值,则只需在一个位置进行更改。使用变量可以提高有效工作的能力,并最大程度地减少出错的可能性。

变量快速入门

要使用变量,请使用以下步骤:
单击Postman 右上角的环境快速查看(眼睛按钮),然后单击Globals旁边的Edit。
添加一个名为的变量my_variable,并将其初始值设置为— Hello单击“ 保存”并关闭环境模式。
打开一个新的请求选项卡,然后输入https://postman-echo.com/get?var={{my_variable}}作为URL。将鼠标悬停在变量名称上,您将看到该值。
发送请求。在响应中,您将看到Postman将变量值发送到了API。尝试在“环境”快速查看中更改值,然后再次发送请求。
请继续阅读以获取有关如何在Postman中使用变量的更多详细信息。

了解变量和环境

Postman支持不同范围的变量,使您可以根据各种开发,测试和其他产品需要定制处理。Postman中的范围与您的请求在Postman应用程序中,集合中,环境中以及Newman / Collection Runner中运行的不同上下文相关。
Postman会将环境和全局变量存储为字符串。如果要存储对象或数组,请JSON.stringify()在存储之前记住它们,并JSON.parse()在检索它们时记住它们。

Postman的环境

例如,如果您的基本网址存储在名为的变量中base_url,则可以使用在请求中引用它{{base_url}}。无论您在请求运行时引用变量的何处,变量中存储的任何值都将包括在内。如果基本URL值为https://httpbin.org,并且使用列为请求URL的一部分,则{{base_url}}/get?customers=newPostman会将请求发送给https://httpbin.org/get?customers=new。

要创建环境,请使用“ Postman右上角的“ Manage environments”按钮,然后单击“ Add”。为您的环境命名,例如“ Testing”(测试),您可以在创建时或以后通过编辑环境来添加变量。
要选择在其中运行请求的环境,请使用Postman应用程序右上方的下拉菜单。

Postman接口自动化测试--变量的使用
您的请求将与所选环境中列出的数据变量一起运行。
您可以在“ Manage environments境”中复制,删除,下载/导入环境JSON,并与协作者共享环境。共享环境使您可以让其他人针对相同的数据集运行您的请求。
Postman接口自动化测试--变量的使用
Postman接口自动化测试--变量的使用

为了安全地共享环境,请创建副本并首先删除所有敏感数据,例如auth值。当您的协作者导入环境时,他们可以输入自己的凭据。您对共享环境所做的任何更改都会在整个团队的访问权限中得到反映。

可变范围

Postman支持以下可变范围:
全球
集合
环境
数据
本地
Postman接口自动化测试--变量的使用
如果在两个不同的范围内声明了具有相同名称的变量,则将使用范围最窄的变量中存储的值-例如,如果有一个全局变量和一个局部变量都名为username,则在请求时将使用局部值运行。

选择变量

变量范围适用于Postman中的不同任务:
全局变量使您可以访问集合,请求,测试脚本和环境之间的数据。
o由于全局变量可能会造成混乱,因此您仅应谨慎使用它们,例如快速测试某些东西或项目处于原型开发初期。
集合变量可在集合中的整个请求中使用,并且独立于环境,因此不要根据所选环境而更改。
如果仅使用单个环境(例如,用于auth / URL详细信息),则收集变量是合适的。
环境变量使您可以针对不同环境定制处理,例如本地开发与测试或生产。一次只能**一个环境。
如果只有一个环境,则使用集合变量会更有效。
局部变量是临时的,只能在您的请求脚本中访问。局部变量值的范围仅限于单个请求或收集运行,并且在运行完成后不再可用。
o如果您需要一个值来覆盖所有其他变量作用域,但又不想在执行结束后保留​​该值,则部变量是合适的。
数据变量来自外部CSV和JSON文件,以定义在通过Newman或Collection Runner运行集合时可以使用的数据集。
Postman接口自动化测试--变量的使用

定义变量

您可以通过多种方式定义变量,具体取决于您需要的是global / environment还是集合范围。请记住删除不再使用的变量。

定义全局变量和环境变量

要在全局或环境范围内创建或编辑变量,请使用“ Environment quick Look”快速查看,然后单击环境或全局变量旁边的“ Edit”。
Postman接口自动化测试--变量的使用

快速查看视图为您正在使用的任何全局变量或环境变量的当前状态提供了参考,您也可以使用键盘快捷键访问快速查看CMD/CTRL + ALT + E。

或者,单击“Manage environment”并选择相关环境,或单击“Globals”。
Postman接口自动化测试--变量的使用
Postman接口自动化测试--变量的使用
如果尚未创建新环境,则可以创建一个新环境。
选择范围后,可以指定变量detail。
您还可以在脚本中定义全局变量和环境变量。

定义集合变量

要创建或编辑现有集合的变量,在选择集合左侧Postman的应用程序,打开查看更多动作(…)菜单,然后单击“Edit”。
Postman接口自动化测试--变量的使用
选择“ Variables”选项卡以编辑或添加到集合变量。
Postman接口自动化测试--变量的使用
您可以在创建新集合时添加集合变量。
您还可以在脚本中定义集合变量。

变量详细信息

您可以随时添加和编辑变量。您需要为新变量包括的只是一个名称-您可以选择提供一个初始值,但也可以稍后再设置它,包括从脚本中进行设置。使用复选框启用或禁用变量。
Postman接口自动化测试--变量的使用
共享集合或环境时,将共享初始值。当前值是本地值,不同步或共享。有关本地变量与同步变量的更多信息,请参见Postman中的会话。
您可以从Manage Environments下载全局变量作为JSON 。
您可以通过选择文本,右键单击/ CTRL +单击并按名称选择相关变量来将响应主体值设置为变量。
Postman接口自动化测试--变量的使用

在脚本中定义变量

您可以在请求脚本中以编程方式设置变量。
使用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.set(“variable_key”, “variable_value”);
局部变量不会在会话之间持久存在,但是允许您在执行请求或收集/监视运行期间临时覆盖所有其他范围。例如,如果您需要为在本地运行的单个请求或集合处理临时测试值,并且不希望该值与您的团队同步或在请求/集合完成运行后仍保持可用状态,则可以使用本地变量。

访问变量

您可以在Postman应用程序用户界面中使用双花括号来引用变量。例如,要在请求身份验证设置中引用名为“用户名”的变量,可以使用以下语法,在名称周围使用双花括号:
{{username}}
运行请求时,Postman将解析该变量并将其替换为当前值。
例如,您可能有一个请求URL引用一个变量,如下所示:
http://pricey-trilby.glitch.me/customer?id={{cust_id}}
cust_id请求运行时,Postman将发送您当前为该变量存储的任何值。如果cust_id当前为3,则请求将被发送到以下包含查询参数的URL:
http://pricey-trilby.glitch.me/customer?id=3
您可以在请求URL,参数,标头,授权,正文和标头预设中使用变量。
Postman接口自动化测试--变量的使用
将鼠标悬停在变量上时,可以看到其当前状态的概述。在请求中键入变量时,Postman会提示您当前定义的任何内容。
Postman接口自动化测试--变量的使用
该提示将在相关时指示当前值,范围(以颜色突出显示)和覆盖状态。
Postman接口自动化测试--变量的使用
如果未解析变量,Postman将以红色突出显示它。
Postman接口自动化测试--变量的使用

在脚本中使用变量

您可以使用表示作用域级别和.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()访问脚本中的变量可以在不影响脚本功能的情况下更改变量范围。此方法将返回当前优先级最高(或范围最窄)的任何变量。

Postman会话

在Postman中编辑全局变量,集合变量和环境变量时,将看到单个变量和所有变量的Current Value,Persist和Reset选项。它们使您可以控制Postman本地实例中发生的情况,而与共享请求,集合和环境的任何人同步数据的方式无关。
Postman接口自动化测试--变量的使用
您在Postman中的本地会话可以使用临时值,并且仅对您可见。这样一来,您就可以使用私人证书或实验值进行开发和测试,而不必担心暴露这些细节或影响团队中的其他人。

例如,您的团队可以具有一个共享的API**和各个API**-您可以使用个人**在本地进行更多的实验性开发工作,但可以使用共享的**进行团队协作。同样,您可能有一个变量,表示您正在本地进行的探索性工作,但尚未准备好与团队共享—您以后可以选择保留本地数据,以便团队中的其他人也可以访问它。

创建或编辑变量时,可以输入初始值和当前值。您可以选择将当前值保留为空,在这种情况下,它将默认为初始值。如果您指定当前值,则该值仅在您的实例本地-Persist选项可让您将当前值推送到共享数据,并更新初始值以匹配当前值。
使用Persist将使您当前的值与Postman的服务器同步,并反映给共享您的收藏或环境的任何人。要重置当前的本地值以反映初始(共享)值,请使用Reset。
您可以从“环境”快速外观中内联编辑当前值:
Postman接口自动化测试--变量的使用
局部变量和数据变量仅具有当前值,该值不会超出请求或收集运行的范围。

变量日志

您可以在请求运行时将变量值记录到Postman Console中。从Postman左下角的按钮或“ 查看”菜单中打开控制台。要记录变量的值,请在脚本中使用以下语法:
console.log(pm.variables.get(“variable_key”));
Postman接口自动化测试--变量的使用

使用参数文件

使用收集运行器,您可以导入CSV或JSON文件,并在请求和脚本中使用数据文件中的值。您无法在Postman中设置数据变量,因为它是从数据文件中提取的,但是您可以在脚本中访问数据变量,例如使用pm.iterationData.get(“variable_name”)。
有关更多信息,请参见使用数据文件和Sandbox API参考。

使用动态变量(自带的系统变量)

Postman提供可在您的请求中使用的动态变量。
动态变量的示例如下:
{{KaTeX parse error: Expected 'EOF', got '}' at position 5: guid}̲} :v4样式的guid {{timestamp}}:当前时间戳(Unix时间戳,以秒为单位)
{{$randomInt}}:0到1000之间的随机整数
有关完整列表,请参见“ 动态变量”部分。
Postman接口自动化测试--变量的使用