一、接口关联的两种方式
1.使用Json提取器实现关联
第一步编写脚本,在请求页面中Tests下
console.log(responseBody); #console.log是打印的意思,responseBody是返回token的数据
var en =JSON.parse(responseBody);
把返回的token字符串格式转换为对象格式,赋值给变量en, var en 相当于创建一个变量 en
console.log(en);
pm.globals.set("token",en.token);
设置为全局变量,变量名为token,en.token是变量值
之后点击Send运行保存,查看保存的全局变量在眼睛的地方查看
第二步,将设置好的token.通过参数化使用.postman参数是{{token}}使用
编写脚本只使用标红的字段即可,打印只是为了让初学者能看到返回的token,查看在下图中查看
console是查看 console.log(responseBody); 打印返回的值 Clear是清除多余的数据
二、通过正则表达式提前实现接口关联
1. var se =respBody.match(new RegExp('"token":"(.*?)"'));
将返回的token值转换成一个新建的正则表达式并赋值给新建的变量se
2.pm.globals.set("token",se[1]) ;
se[1]的原因是下标1只显示数值信息
1.这里要注意('"token":"(.*?)"')是来自于响应页面Body中的Raw文本信息 "token":"e289381f106d465dafa437e816a67e8a"
当其中有双引号时,要在('"token":"(.*?)"')中再加入'',否则会报错,将值"e289381f106d465dafa437e816a67e8a",变为(.*?)
第二步,将设置好的token.通过参数化使用.postman参数是{{token}}使用
二、内置动态参数和自定义动态参数
内置参数和自定义参数最大的区别在于,内置参数没有办法做断言
postman中有几种内置动态参数,如下:
{{$timestamp}} 生成当前的时间戳
{{$randomlnt}} 生成0-1000的随机数(有可能重复)
{{$guid}} 生成随机的guiD字符串
自定义动态参数:
在请求页面,Pre-requestScrip下编写
rav times=Data.new(); #生成一个时间戳,赋值给变量times
pm.globals.set("times",times);
第二步通过{{times}}参数化使用