postman有以下几个高级功能,不是很常用,但是很实用
1.环境变量管理,用于切换开发环境、测试环境、生产环境
2.Pre-request Script 请求前脚本
3.Tests 请求后断言
1.环境变量管理
在postman的右上角,可以下拉选择环境变量集
在右边的设置按钮,可以对环境变量进行管理
环境变量入口 环境变量管理 环境变量编辑接着,就可以在请求中使用这些环境变量了,使用双括号 {{}} 引用环境变量,即可以在url中使用,也可以在参数中使用
在url中使用环境变量 在参数中使用环境变量2.Pre-request Script
Pre-request Script 和Tests类似,只不过前者是在请求前执行,后者是在请求后执行
pre-request script & test script我们可以利用Pre-request Script生成时间戳参数或者验签参数
2.1 生成时间戳
生成时间戳,并保存到全局变量中
生成时间戳参数在请求参数或Header里引用该变量
参数中引用变量 实际请求的参数值2.2 根据请求参数生成验签参数
script如下:
var skey=pm.globals.get("security_key"); //拼接请求参数
var str="bizContent="+request.data.bizContent+"×tamp="+request.data.timestamp+"&securityKey="+skey;
console.log("str:"+str); //加密请求参数
var strmd5 = CryptoJS.MD5(str).toString(); console.log(strmd5); //将加密结果保存到变量中
pm.variables.set("sign",strmd5);
其中,security_key是中Tests Script中从登录接口返回的response中获取的,下文会写到
然后在请求参数中再引用 sign变量
3. Tests Script
Tests Script 可以做一些请求完成后的动作,也可以做断言
pm.test("check result code",function(){
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.equal("0");//断言
})
pm.test("check securityKey", function () {
var jsonData = pm.response.json();
var skey=jsonData.data.securityKey;
var val=skey && skey.length>0;
pm.expect(val).to.be.true;//断言
if(val){
pm.globals.set("security_key", skey);
var token=jsonData.data.token;
pm.globals.set("token", token);
}
});
这里是有两个测试用例,
第一个是检查code是否等于0
第二个检查securityKey是否正常,正常的话,并将它保存到全局变量中
网友评论