目录结构
一、Postman变量简介
1. 变量引入
2. Postman变量类型
二、Postman变量类型
1. 环境变量(Environment Variable)
2. 本地变量(Local Variable)
3. 全局变量(Global Variable)
4. 数据变量(Data Variable)
在软件开发的不同阶段,一般都会存在不同的环境,如:测试环境和生产环境。
按照常规思路,一种方式是需要维护2套环境的API,另一种方式是每次都需要手动逐个去修改URL。不管哪种选择都比较麻烦且低效,Postman提供了一套比较好的方法通过配置Environment来解决这个问题。
以上两组API主要区别在于host不同,只要把host用变量替换,就可以灵活切换到不同的环境。Postman提供了变量设置,有4种变量类型:
环境变量:指在不同环境下,同一个变量值随着环境的不同而变化。
在Postman界面右上角,点击"眼睛"图标,即可开始设置环境变量和全局变量。此时需要对环境变量设置2种环境:test环境、release环境(test——开发测试环境,release——正式的生产环境)。
分别添加test环境、release环境的host环境变量
host环境变量添加完成
切换环境,再次点击"眼睛"图标,即可查看到当前所选择的环境的host指向
{{variable_name}}
{{host}}/get
本地变量:主要是针对单个URL请求设置的变量,作用域只是局限在请求范围内。
案例:
请求URL:https://postman-echo.com/post
请求方式:POST
设置两个本地变量(uname、pwd)作为参数
变量引用的格式为:{{variable_name}}
变量设置好之后,需要对变量赋值,在【Pre-request Script】
里面编写代码:
pm.variables.set("uname","test00001");
pm.variables.set("pwd","123456");
若为GET请求方式,则请求URL:
https://postman-echo.com/get?uname={{uname}}&pwd={{pwd}}
全局变量:是指在所有的环境里变量值都是一样的,全局变量的作用域是所有请求。
点击"眼睛"图标,在Global选项菜单点击【Edit】
,即可设置全局变量。全局变量的引用格式和环境变量一样
PS:当环境变量和全局变量名称一样时,切换到某个环境时,环境变量会覆盖全局变量。
使用脚本可以设置全局变量,如:
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值,并赋值给全局变量global_id存储,然后传递到接口B中作为参数发送请求。
在【Test】
标签(专门对返回响应数据进行处理的栏目)栏目编写脚本:
//获取返回的响应值,并转化为json格式,赋给变量jsonData
var jsonData = pm.response.json();
//获取返回的uid值,赋给变量global_id存储
var global_id = jsonData.json['aaa_id'];
//在Postman控制台日志输出global_id的值
console.log(global_id);
//将global_id值设置为全局变量
pm.globals.set("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】
查看Postman Console监控结果:
查看Postman界面Global变量区域:
==> 以上,实现了接口A和接口B之间的关联效果