postman接口测试工具test中经常用到的脚本归纳
1.获取response返回内容
var rsb = responseBody; // 是字符串格式
2.设置环境变量 只能存储字符串,如果是对象的话则无法在下次运行时获取到内容,如需要存储JSON数据,可以用JSON.stringify(..)存储,再用JSON.parse(..)转化为对象使用
pm.environment.set("变量名称", 变量内容);
postman.setGlobalVariable("accessToken",temp.data.accessToken) //全局变量
postman.setEnvironmentVariable("businessNo",temp.data.contents[0].id) //局部变量
3.获取环境变量
var v = pm.environment.get("变量名称");
4.清除某个环境变量
pm.environment.unset("环境变量名");
5.获取全局变量和普通变量
var gb = pm.globals.get("全局变量名");
var nm = pm.variables.get("普通变量名");
6. Javascript 获取变量类型
console.log( typeof pm.enviroment );
7.动态生成变量
{{$guid}}:添加v4样式的guid。
{{$timestamp}}添加当前时间戳
{{$randomInt}}:在0到1000之间添加一个随机整数。
8.下一个调用接口,可用于指定调用某个接口(注意调用B接口后会顺序从B接口运行下去)
postman.setNextRequest(‘下一个接口名');
终止调用(没有执行到终止调用接口会一直循环下去)
postman.setNextRequest("null");
9. “期待”返回结果必须包含某一段内容
pm.expect(从response里获取的字符串).to.include("必须包含的内容");
10.返回body值必须完全等于某一段内容
pm.response.to.have.body("必须等于的内容");
11.反应时间必须少于200毫秒
pm.expect(pm.response.responseTime).to.be.below(200);
12.必须返回某一个状态 如"Created"
pm.response.to.have.status("状态名");
13.pm.expect(目标值).to.equal(“获取校验值”); //比较相等
14.example using response assertions
pm.test("response should be okay to process", function () {
pm.response.to.not.be.error;
pm.response.to.have.jsonBody("");
pm.response.to.not.have.jsonBody("error");
});
最后贴上我常用的通用接口判断脚本,支持判断服务器正常,接口状态码正常,正则表达式匹配,响应内容校验。
// pm.test(responseBody)
if(responseCode.code === 200){
tests["接口请求成功:"] = responseBody.has("\"code\":\"00000000\",");
var temp = JSON.parse(responseBody);
// pm.test(temp.data.userinfo.token)
// postman.setGlobalVariable("accessToken",temp.data.accessToken)
// postman.setEnvironmentVariable("XH","112211")
pm.test("查询校验", function () {
var patt=/\"applicationName\":\"牌价查询\"/;
// pm.test(patt.test(responseBody));
pm.expect(true).to.equal(patt.test(responseBody));
});
}else{
tests["服务器异常"] = false
}