postman接口自动化(三)变量设置与使用

一、环境变量
环境是由一组键值对形式的环境变量构成的变量组合。
在做接口测试的时候,通常需要在本地调试,或者需要在开发环境、测试环境及开发环境运行,不同的环境的域名(host)、数据库配置等设置不同。
通过配置不同的环境变量值,再在请求中使用不同的值,那么可以通过切换环境来切换不同的值,以达到不用修改任何请求就能在任意环境运行。
postman接口自动化(三)变量设置与使用
在打开的窗口中设置好环境名称和变量值即可:
**VARIABLE:**设置一个环境变量名称标识,通过变量名调用该变量;
INITIAL VALUE:共享 Collection 用到的值,如果不共享 Collection 可以不用设置;
**CURRENT VALUE:**当前值,用于当前 Postman 运行请求时使用的值,一般我们设置这个值;
···:这里的···按钮可以设置列的显示;
Presist All:将所有当前表格中 initial 列的共享值设置为 当前值;
Reset All:将所有当前表格中 当前值设置为 initial 列的共享值。

环境切换:
点击右上角齿轮旁边的下拉菜单可以切换环境:
postman接口自动化(三)变量设置与使用
切换环境后,环境变量会随着改变。
可以通过右上角的眼睛?按钮查看当前环境所有环境变量的值和全局变量的值

分享环境变量
点击右上角的齿轮打开环境编辑界面:postman接口自动化(三)变量设置与使用
分享环境有两种方式,一种是点击 Share 按钮,但是这种方式需要付费才行。
第二种方式是上图中标记的位置,以 Json 文件的方式导出环境配置。
将 Json 文件分享给团队成员,其他成员通过 Postman 顶部的 Import 按钮导入环境即可。

二、变量设置
变量是用来存储动态值的静态标识符。变量标识的信息可以更改,但是对变量的操作保持不变。
我们可以在多个位置重用变量值。如果变量的值发生变化,变量的每个实例都会相应的更改,从而减少了重复修改的需要和出错的可能性。
我们还可以通过变量从一个请求中获取数据,在另一个请求中使用它们。

在 Postman 中有以下几种变量:
● 局部变量 local
data 文件中的变量 data
● 环境变量 environment
Collection 中的变量 collection
● 全局变量 global
● 内置变量 dynamic

除局部变量以外的其他变量值只能是字符串,如果要存储对象或者其他数据类型的数据,需要先转换为字符串(JSON.stringify()),然后在使用时转换回去(JSON.parse())。

变量优先级
以下的图可以说明变量的优先级,越外层的变量优先级越低。

比如同一个变量名 host,在 environment 和 global 中分别设置了不同的值,那么最终运行请求的时候,实际使用的是 environment 中的值,因为 environment 变量的优先级比 global 更高。
postman接口自动化(三)变量设置与使用
设置变量
1、局部变量 local variable
局部变量是在代码(Pre-request,Tests)中设置的。使用 JavaScript 的变量语法即可。
postman接口自动化(三)变量设置与使用
其优先级最高,但是仅在当前的脚本环境中有效,对于上图中的json变量,只在当前请求的 Tests 中的脚本有效。

2、data 文件中的变量 data
在 Collection 运行中我们讲过可以加载数据驱动的文件(CSV,JSON)中的值。
postman接口自动化(三)变量设置与使用
上图中通过加载的数据文件中读取出的一个变量msisdn

3、环境变量 environment
环境变量可以通过两种方式设置,一种是在环境设置中进行设置:
另一种设置环境变量的方法是,在代码(Pre-request,Tests)中设置。
postman接口自动化(三)变量设置与使用
上图中通过代码设置了一个变量 ip,其值为 192.168.75.29。

4、Collection 中的变量 collection
在 Collection 中可以设置变量,设置的方法是在 Collection 编辑界面的 Variables选项卡中:
postman接口自动化(三)变量设置与使用
postman接口自动化(三)变量设置与使用
上图中设置了一个 Collection 变量 ip,其值为192.168.75.29。
也可以看到这里的设置界面很类似环境变量的设置。

5、全局变量 global
全局变量的设置类似环境变量的设置,也有两种方式。
一种方法,那就是通过代码(Pre-request,Tests)设置。
postman接口自动化(三)变量设置与使用
上图中通过代码设置了一个全局变量 msisdn, 其值为13828789407。
另一种方法是在环境设置(就是设置环境变量那个地方)界面进行设置:
postman接口自动化(三)变量设置与使用

三、内置变量
内置变量dynamic variables是由 Postman 提供的大量预设变量,用来生成一些随机值,方便测试过程中通过一些重复性校验。
在构造请求的时候,输入{,就会出现这些预设变量的待选项:
postman接口自动化(三)变量设置与使用

Postman 提供了非常多类型的随机生成的内容,可以在测试的时候省去很多构造数据的过程。
由于这些变量如此众多,不用看完,需要的时候再来查阅即可。最重要的内容是随机生成唯一性的字符串变量。

随机唯一性字符串
这些是唯一性很强的字符串,对于一些有唯一限制的内容可以使用这些值来填充。

Variable Name Description Examples
$guid uuid-v4 风格的 guid,随机性非常强 “611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4”
$timestamp 时间戳 1562757107 , 1562757108 , 1562757109
$randomUUID 随机 36 位的 UUID “6929bb52-3ab2-448a-9796-d6480ecad36b”

随机文字、字符串、颜色(码)

Variable Name Description Examples
$randomAlphaNumeric 1位随机字符或数字 6 , “y” , “z”
$randomBoolean 随机布尔值 (true/false) true , false , false , true
$randomInt 1~1000 之间的随机整数 802 , 494 , 200
$randomColor 随机颜色单词 “red” , “fuchsia” , “grey”
$randomHexColor 随机颜色码 “#47594a” , “#431e48” , “#106f21”
$randomAbbreviation 随机缩写 SQL , PCI , JSON

随机网络标识和 IP 地址

Variable Name Description Examples
$randomIP 随机的 IPv4 地址 241.102.234.100 , 216.7.27.38
$randomIPV6 随机 IPv6 地址 dbe2:7ae6:119b:c161:1560:6dda:3a9b:90a9
$randomMACAddress 随机 MAC(物理)地址 33:d4:68:5f:b4:c7 , 1f:6e:db:3d:ed:fa
$randomPassword 由字母和数字组成的 15 位随机密码 t9iXe7COoDKv8k3 , QAzNFQtvR9cg2rq
$randomLocale 随机两位字母组成的语言代码 (ISO 639-1) “ny” , “sr” , “si”
$randomUserAgent 随机用户代理 Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.9.8; rv:15.6) Gecko/20100101 Firefox/15.6.6
$randomProtocol 随机协议类型 “http” , “https”
$randomSemver 由数字组成的随机版本号 7.0.5 , 2.5.8 , 6.4.9

随机姓名(英文)

Variable Name Description Examples
$randomFirstName 随机的名字(英文) Ethan , Chandler , Megane
$randomLastName 随机姓氏(英文) Schaden , Schneider , Willms
$randomFullName 随机全名(名字 姓氏) Connie Runolfsdottir , Sylvan Fay , Jonathon Kunze
$randomNamePrefix 随机称呼 Dr. , Ms. , Mr.
$randomNameSuffix 随机姓名后缀 I , MD , DDS

职业

Variable Name Description Examples
$randomJobArea 随机工作范围 Mobility , Intranet , Configuration
$randomJobDescriptor 随机职业等级 Forward , Corporate , Senior
$randomJobTitle 随机工作标题 International Creative Liaison ,
$randomJobType 随机工作类型 Supervisor , Manager , Coordinator

随机电话号码、区域、地址

Variable Name Description Examples
$randomPhoneNumber 随机 10 位数字电话号码 700-008-5275 , 494-261-3424 , 662-302-7817
$randomPhoneNumberExt 随机扩展号码(包含区号) 27-199-983-3864 , 99-841-448-2775
$randomCity 随机城市名称 Spinkahaven , Korbinburgh , Lefflerport
$randomStreetName 随机街道名称 Kuhic Island , General Street , Kendrick Springs
$randomStreetAddress 随机街道地址 5742 Harvey Streets , 47906 Wilmer Orchard
$randomCountry 随机国家名称 Lao People’s Democratic Republic , Kazakhstan , Austria
$randomCountryCode 随机两位字符的国家编码 (ISO 3166-1 alpha-2) CV , MD , TD
$randomLatitude 随机纬度 55.2099 , 27.3644 , -84.7514
$randomLongitude 随机精度 40.6609 , 171.7139 , -159.9757

随机图片

Variable Name Description
$randomImage 随机图片地址
$randomAvatarImage 随机头像图片
$randomImageUrl 随机图片地址
$randomAbstractImage 随机头像缩略图
$randomAnimalsImage 随机动物图片地址
$randomBusinessImage 随机股票业务图片
$randomCatsImage 随机猫图片
$randomCityImage 随机城市图片
$randomFoodImage 随机食物图片
$randomNightlifeImage 随机夜生活图片
$randomFashionImage 随机时尚图片
$randomPeopleImage 随机人物图片
$randomNatureImage 随机自然风景图片
$randomSportsImage 随机运动图片
$randomTechnicsImage 随机科技图片
$randomTransportImage 随机交通工具图片
$randomImageDataUri 随机图片的 data 数据

随机金融类数据

Variable Name Decription Examples
$randomBankAccount 随机的8位数字银行帐号 09454073 , 65653440 , 75728757
$randomBankAccountName 随机的银行帐户名称(e.g. savings account, checking account) Home Loan Account , Checking Account , Auto Loan Account
$randomCreditCardMask 随机屏蔽的信用卡号 3622 , 5815 , 6257
$randomBankAccountBic 随机银行识别码 (Bank Identifier Code) EZIAUGJ1 , KXCUTVJ1 , DIVIPLL1
$randomBankAccountIban 随机 15-31位的国际银行帐号 (International Bank Account Number) MU20ZPUN3039684000618086155TKZ
$randomTransactionType 随机交易类型 (e.g. invoice, payment, deposit) invoice , payment , deposit
$randomCurrencyCode 随机的 3 位字母的货币代码 (ISO-4217) CDF , ZMK , GNF
$randomCurrencyName 随机货币名称 CFP Franc , Cordoba Oro , Pound Sterling
$randomCurrencySymbol 随机货币标志 $ , £
$randomBitcoin 随机比特币地址 3VB8JGT7Y4Z63U68KGGKDXMLLH5

随机商业数据

Variable Name Decription Examples
$randomCompanyName 随机公司名称 Johns - Kassulke , Grady LLC
$randomCompanySuffix 随机公司后缀(e.g. Inc, LLC, Group) Inc , LLC , Group
$randomBs 随机商业用语 killer leverage schemas ,
$randomBsAdjective 随机商业形容词用语 viral , 24/7 , 24/365
$randomBsBuzz 随机商业流行词 repurpose , harness , transition
$randomBsNoun 随机商业名词 e-services , markets , interfaces

随机警句(标语)

Variable Name Decription Examples
$randomCatchPhrase 随机名言警句 Future-proofed heuristic open architecture ,
$randomCatchPhraseAdjective 随机流行语形容词 Self-enabling , Business-focused , Down-sized
$randomCatchPhraseDescriptor 随机流行描述符号 bandwidth-monitored , needs-based , homogeneous
$randomCatchPhraseNoun 随机生成给一个流行名词 secured line , superstructure , installation

随机数据库相关数据

Variable Name Decription Examples
$randomDatabaseColumn 随机数据库列名 updatedAt , token , group
$randomDatabaseType 随机数据库类型 tinyint , text
$randomDatabaseCollation 随机数据库排序规则 cp1250_bin , utf8_general_ci , cp1250_general_ci
$randomDatabaseEngine 随机数据库引擎 MyISAM , InnoDB , Memory

随机日期

Variable Name Decription Examples
$randomDateFuture 随机未来时间 Tue Mar 17 2020 13:11:50 GMT+0530 (India Standard Time) ,
$randomDatePast 随机过去时间 Sat Mar 02 2019 09:09:26 GMT+0530 (India Standard Time) ,
$randomDateRecent 随机近期时间 Tue Jul 09 2019 23:12:37 GMT+0530 (India Standard Time) ,
$randomWeekday 随机星期几 Thursday , Friday , Monday
$randomMonth 随机月份 February , May , January

随机域名、电子邮件和用户名

Variable Name Decription Examples
$randomDomainName 随机完整域名 gracie.biz , armando.biz , trevor.info
$randomDomainSuffix 随机*域名 org , net , com
$randomDomainWord 随机不合法域名 gwen , jaden , donnell
$randomEmail 随机电子邮箱地址 [email protected] , [email protected] , [email protected]
$randomExampleEmail 随机电子邮箱地址,域名为example [email protected] , [email protected] , [email protected]
$randomUserName 随机用户名 Jarrell.Gutkowski , Lottie.Smitham24 , Alia99
$randomUrl 随机 URL 地址 https://anais.net , https://tristin.net , http://jakob.name

随机文件名和目录

Variable Name Decription Examples
$randomFileName 随机文件名 (包括不常用的扩展名) neural_sri_lanka_rupee_gloves.gdoc ,
$randomFileType 随机文件类型 (包括不常用的文件类型) model , application , video
$randomFileExt 随机文件扩展名 (包括不常见的文件扩展名) war , book , fsc
$randomCommonFileName 随机文件名 well_modulated.mpg4 ,
$randomCommonFileType 随机常见文件类型 application , audio
$randomCommonFileExt 随机常见文件扩展名 m2v , wav , png
$randomFilePath 随机文件路径 /home/programming_chicken.cpio ,
$randomDirectoryPath 随机目录路径 /usr/bin , /root , /usr/local/bin
$randomMimeType 随机 MIME 类型(header 中的 content-type 会用到) audio/vnd.vmx.cvsd ,

随机物料(库存、商品等)

Variable Name Decription Examples
$randomPrice 随机生成 100.00 ~ 999.00 之间的价格 531.55 , 488.76 , 511.56
$randomProduct 随机商品 Towels , Pizza , Pants
$randomProductAdjective 随机商品形容词 Unbranded , Incredible , Tasty
$randomProductMaterial 随机商品材料 Steel , Plastic , Frozen
$randomProductName 随机商品名称 Handmade Concrete Tuna , Refined Rubber Hat
$randomDepartment 随机商业分类 Tools , Movies , Electronics

基于英语语法的随机数据

Variable Name Decription Examples
$randomNoun 随机名词 matrix , bus , bandwidth
$randomVerb 随机动词 parse , quantify , navigate
$randomIngverb 随机带 “-ing” 的动词 synthesizing , navigating , backing up
$randomAdjective 随机形容词 auxiliary , multi-byte , back-end
$randomWord 随机单词 withdrawal , infrastructures , IB
$randomWords 一些随机单词构成的字符串 Samoa Synergistic sticky copying Grocery ,
$randomPhrase 随机短语 You can’t program the monitor without navigating the mobile XML program! ,

随机的文本内容

Variable Name Decription Examples
$randomLoremWord 随机单词 est
$randomLoremWords 随机单词构成的短语 vel repellat nobis
$randomLoremSentence 随机单词构成的句子 Molestias consequuntur nisi non quod.
$randomLoremSentences 随机 2~6 条句子构成的段落 Et sint voluptas similique iure amet perspiciatis vero sequi atque. Ut porro sit et hic. Neque aspernatur vitae fugiat ut dolore et veritatis. Ab iusto ex delectus animi. Voluptates nisi iusto. Impedit quod quae voluptate qui.
$randomLoremParagraph 随机单词构成的一段话 Ab aliquid odio iste quo voluptas voluptatem dignissimos velit. Recusandae facilis qui commodi ea magnam enim nostrum quia quis. Nihil est suscipit assumenda ut voluptatem sed. Esse ab voluptas odit qui molestiae. Rem est nesciunt est quis ipsam expedita consequuntur.
$randomLoremParagraphs 随机单词构成的 3 个段落 Voluptatem rem magnam aliquam ab id aut quaerat. Placeat provident possimus voluptatibus dicta velit non aut quasi. Mollitia et aliquam expedita sunt dolores nam consequuntur. Nam dolorum delectus ipsam repudiandae et ipsam ut voluptatum totam. Nobis labore labore recusandae ipsam quo.
$randomLoremText 随机单词构成的文本 Quisquam asperiores exercitationem ut ipsum. Aut eius nesciunt. Et reiciendis aut alias eaque. Nihil amet laboriosam pariatur eligendi. Sunt ullam ut sint natus ducimus. Voluptas harum aspernatur soluta rem nam.
$randomLoremSlug 随机单词构成的 URL 部分 eos-aperiam-accusamus , beatae-id-molestiae , qui-est-repellat
$randomLoremLines 由随机单词构成的 1~5 行数据(用回车符分隔) Ducimus in ut mollitia.\nA itaque non.\nHarum temporibus nihil voluptas.\nIste in sed et

四、变量的使用