Postman四种变量类型的配置实践

目录结构

一、Postman变量简介1.变量引入2.Postman变量类型二、Postman变量类型1.环境变量(Environment Variable)2.本地变量(Local Variable)3.全局变量(GlobalVariable)4.数据变量(Data Variable)

一、Postman变量简介

1. 变量引入

在软件开发的不同阶段,一般都会存在不同的环境,如:测试环境和生产环境。

环境API

测试环境https://test.postman.com

生产环境https://postman-echo.com

按照常规思路,一种方式是需要维护2套环境的API,另一种方式是每次都需要手动逐个去修改URL。不管哪种选择都比较麻烦且低效,Postman提供了一套比较好的方法通过配置Environment来解决这个问题。

2. Postman变量类型

以上两组API主要区别在于host不同,只要把host用变量替换,就可以灵活切换到不同的环境。Postman提供了变量设置,有4种变量类型:

环境变量(Environment Variable)

本地变量(Local Variable)

全局变量(Global Variable)

数据变量(Data Variable)

二、Postman变量类型

1. 环境变量(Environment Variable)

环境变量:指在不同环境下,同一个变量值随着环境的不同而变化。

测试环境,host值:test.postman.com

生产环境,host值:postman-echo.com

环境变量设置:

在Postman界面右上角,点击"眼睛"图标,即可开始设置环境变量和全局变量。此时需要对环境变量设置2种环境:test环境、release环境(test——开发测试环境,release——正式的生产环境)。

分别添加test环境、release环境的host环境变量

host环境变量添加完成

切换环境,再次点击"眼睛"图标,即可查看到当前所选择的环境的host指向

引用环境变量:

变量引用的格式为:{{variable_name}}

切换到release环境,然后设置请求URL:{{host}}/get

即所请求的url为:http://postman-echo.com/get

2. 本地变量(Local Variable)

本地变量:主要是针对单个URL请求设置的变量,作用域只是局限在请求范围内。

案例:

请求URL:https://postman-echo.com/post

请求方式:POST

设置两个本地变量(uname、pwd)作为参数

变量引用的格式为:{{variable_name}}

1)POST请求方式

变量设置好之后,需要对变量赋值,在【Pre-request Script】里面编写代码:

pm.variables.set("uname","test00001");pm.variables.set("pwd","123456");

点击【Send】发送请求,返回结果:

2)GET请求方式

若为GET请求方式,则请求URL:

https://postman-echo.com/get?uname={{uname}}&pwd={{pwd}}

返回结果:

{"args": {"uname":"test00001","pwd":"123456"},"headers": {"host":"postman-echo.com","accept":"*/*","accept-encoding":"gzip, deflate","cache-control":"no-cache","content-type":"application/x-www-form-urlencoded","cookie":"sails.sid=s%3AKiH3ogBe_EPs7Mf2P1uYjp7LK8HVBilr.IjeuDoWIgYO1jORsVI1NxQUHOPzcGmixkHSg08ChiPE; uid=123","postman-token":"b7c4b8f6-001a-485e-be5d-4f380881c0fe","user-agent":"PostmanRuntime/7.3.0","x-forwarded-port":"443","x-forwarded-proto":"https"},"url":"https://postman-echo.com/get?uname=test00001&pwd=123456"}

OR

切换到release环境之后,设置URL为:{{host}}/get?uname={{uname}}&pwd={{pwd}},然后再发送请求,返回结果如下:

3. 全局变量(Global Variable)

全局变量:是指在所有的环境里变量值都是一样的,全局变量的作用域是所有请求。

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

界面设置

脚本设置

1. 界面设置

点击"眼睛"图标,在Global选项菜单点击【Edit】,即可设置全局变量。全局变量的引用格式和环境变量一样

PS:当环境变量和全局变量名称一样时,切换到某个环境时,环境变量会覆盖全局变量。

2. 脚本设置

使用脚本可以设置全局变量,如:

pm.globals.set("variable_key","variable_value");

variable_key表示变量名,variable_value表示变量值

接口关联

在实际接口测试过程中,接口经常会有关联。比如需要获取上一个接口的某个返回值,然后作为参数传递到下一个接口作为参数。

案例:获取接口A返回的aaa_id值,作为接口B发送请求的参数。

【API_A】

接口A-请求URL:https://postman-echo.com/post

请求方式:POST

请求参数:自定义aaa_id

(接口A会返回对应的aaa_id值)

自定义aaa_id=666,发送请求,查看返回结果:

{"args": {},"data":"","files": {},"form": {"aaa_id":"666"},"headers": {"host":"postman-echo.com","content-length":"10","accept":"*/*","accept-encoding":"gzip, deflate","cache-control":"no-cache","content-type":"application/x-www-form-urlencoded","cookie":"sails.sid=s%3ADDGuTPQ96bofK0kB65xl8X7h_yJP3yG5.HDIg%2FXrBonHeS1UMMgAbAN5w3uVVB38Qq7AN1vMh%2BGM; uid=123","postman-token":"4c1c4272-6fbc-45bd-bd5f-b384a9ea3ebf","user-agent":"PostmanRuntime/7.3.0","x-forwarded-port":"443","x-forwarded-proto":"https"},"json": {"aaa_id":"666"},"url":"https://postman-echo.com/post"}

根据以上返回值,需要从中提取aaa_id值,并赋值给全局变量global_id存储,然后传递到接口B中作为参数发送请求。

在【Test】标签(专门对返回响应数据进行处理的栏目)栏目编写脚本:

//获取返回的响应值,并转化为json格式,赋给变量jsonDatavarjsonData = pm.response.json();//获取返回的uid值,赋给变量global_id存储varglobal_id = jsonData.json['aaa_id'];//在Postman控制台日志输出global_id的值console.log(global_id);//将global_id值设置为全局变量pm.globals.set("global_id",global_id);

【API_B】

接口B-请求URL:https://postman-echo.com/get?bbb_id={{global_id}}

请求方式:GET

依次发送请求:【API_A】--->【API_B】

接口B的返回数据:

{"args": {"bbb_id":"666"},"headers": {"host":"postman-echo.com","accept":"*/*","accept-encoding":"gzip, deflate","cache-control":"no-cache","cookie":"sails.sid=s%3ADwYtD_YLprrYUCGmdL1ETT2E3DzbfCGW.TI9hVnILs6KMNS%2BaM9m8NZaNCKhPffrgsL12ikhwC%2Fw; uid=123","postman-token":"d6a7b7d8-ecf9-4461-816a-943aae1d3671","user-agent":"PostmanRuntime/7.3.0","x-forwarded-port":"443","x-forwarded-proto":"https"},"url":"https://postman-echo.com/get?bbb_id=666"}

查看Postman Console监控结果:

查看Postman界面Global变量区域:

==> 以上,实现了接口A和接口B之间的关联效果

4. 数据变量(Data Variable)

数据变量:通过导入外部数据文件(json/csv文件),来获取变量的数据。

创建一个json文件,如:data.json

[{"uname":"test00001","pwd":"123456"},{"uname":"test00002","pwd":"123456"},{"uname":"test00003","pwd":"123456"}]

作者:Fighting_001

链接:https://www.jianshu.com/p/8950dac8fe9f

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 明镜湖上蜻蜓飞, 热闹群里人声沸。
    康真阅读 133评论 0 0
  • 如何摆脱? 如果是创造一个未来性的更大困境来压制呢? 这跟完一个谎言的意思怎么感觉有点像。
    An安竹阅读 345评论 0 0
  • 谁相信自己是时间的主人 谁相信自己是空间的放牧师 你信吗 你听见了 時间刹那刹那的 气息 奔跑在空间的旷野上吗 ...
    雪山孟龙阅读 131评论 0 0
  • 昨天去看了《大鱼海棠》,这部号称打磨了十二年的电影,我对于国产的动画还是支持的,真心希望有一天我们也有能拿得出手的...
    YJ豆花酱阅读 231评论 0 0