遇到的问题:原来每次取token都是浏览器打开网页,或者跑一个登陆的接口,然后复制到需要跑的接口或者复制到变量中。隔一段时间再跑接口token就过期了。
想解决的问题:跑接口的时候自动获取token值,或者获取其他需要的值。
1、接口成功运行后,在Tests中输入:
var jsonData = pm.response.json();
//获取返回的json值
if(jsonData.code === 1000) {
//增加一个判断,判断返回的code是否符合要求,具体看接口文档中的要求
pm.environment.set("token", jsonData.data.token)
//设置一个环境变量‘token’
pm.globals.set("globalstoken", jsonData.data.token);
//也可以设置一个全局变量‘globalstoken’(这个名字可以自定义),根据自己的需求
}
2.运行接口,查看环境变量和全局变量中是否有token这个参数
3、我成功取到了token到环境变量中,那之后的接口要用到token,只要{{token}}调用即可
4、那这个时候,我想到了,每次登陆的token是不同的。那我每次新增一个订单的订单id也是不同的,按之前手动输入参数的方法,每次都要重新输入。那我就试着获取订单列表的最新一个订单的id
var jsondata = JSON.parse(responseBody);
//获取JSON格式的响应数据
if (jsondata.code == 1000) {
//增加一个判断,判断返回的code是否符合要求,具体看接口文档中的要求
tests["获取orderId成功"] = true;
//若返回的‘code’正常,显示tests“获取orderId成功”,方便断言中查看
var id=jsondata.data.content[0].orderId;
//获取第一个orderId的值,赋值到id中
pm.environment.set("last_orderId",id);
//设置一个环境变量’last_orderId‘,值是id的值
}
else {
tests["查询成功"] = flase;
//若code不正常,则不取值
}
查看环境变量:
5.最后写点:从body中获json响应值,要准确定位值所在的位置。调用就是用这个 {{参数名}}替代对应值的值。