接口关联:在接口测试中,一个请求依赖另一个请求的结果,例如在添加购物车时,需要依赖登录
接口关联操作步骤:如接口2需要接口1的某个参数(token为例)
1、提取上一个接口(接口1)的响应数据中关联数据(如token值)
(1)使用json提取器,在tests中编写如下代码,提取token值
// json 提取器
console.log(responseBody); //打印返回结果
var jsdata = JSON.parse(responseBody) //json提取器,把返回的结果转化为json对象
//console.log(jsdata.token);
pm.globals.set("token",jsdata.token)//取值并设置为全局变量
(2)正则表达式提取器,在tests中编写如下代码,提取token值
//正则表达式提取器
console.log(responseBody); //打印返回结果
var data = responseBody.match(new RegExp('"token": "(.*?)"')) ; //new RegExp()新建正则表达式
//console.log(data[1]); //调试看看是不是我们需要的token值
// pm.globals.set("token",data[1]);//取值并设置为全局变量
2、在下一个接口(接口2)的请求中添加引用关联数据(如token值)
(1) 把关联数据设置为全局变量或环境变量
设置全局变量:
// pm.globals.set("variable_key", "variable_value");
pm.globals.set("token",data[1])
设置环境变量
pm.environment.set("variable_key", "variable_value");
全局变量可以在所有的接口请求里面使用,通过{{变量名}}
取值;
环境变量可以在当前环境的所有接口请求使用,通过{{变量名}}
取值
说明:当只有一个环境时,全局变量和环境变量作用域一样;当环境有多个时,全局变量作用域>环境变量
-
环境变量的创建:
-
环境变量的使用
postman内置动态参数和自定义动态参数
1、postman内置动态参数:
{{$timestamp}}
自动生成当前时间的时间戳
{{$randomint}}
自动生成0-1000的随机数(很少用,可能重复)
{{$guid}}
自动生成GUID长字符串随机数
2、自定义动态参数:
在Pre-request Script中编写,可以在请求之前生成动态参数值,例:生成时间戳的,最常用
var times = Data.now(); //获取当前的系统时间
pm.globals.set("times",times) //设置为全局变量
在发送请求时,使用自定义的参数