环境变量
1.创建环境变量
正式环境是错误的,方便验证环境变化
2.在请求中添加变量
3.运行前选择环境变量
全局变量
能够在任何接口访问的变量
console中打印日志
console.log(responseBody);
//将数据解析为json格式
var data = JSON.parse(responseBody);
console.log(data.access_token);
手动关联接口
方式一:json提取器
在第一个接口提取变量
//获取access_token的值
var access_token = data.access_token;
//这个变量保存到环境变量中,这样大家都能用了
pm.environment.set("access_token", access_token);
在第二个接口使用变量
{{access_token}}
设为环境变量
//将数据解析为json格式
var data = JSON.parse(responseBody);
console.log(data.access_token);
//获取access_token的值
var access_token = data.access_token;
//这个变量保存到环境变量中,这样大家都能用了
pm.environment.set("access_token", access_token);
设为全局变量
方式二:正则表达式提取
第一个接口提取:
var result = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log(result[1]);
pm.globals.set("token",result[1]);
第二个接口:
{{token}}
postman内置动态参数
{{$timestamp}} 时间戳
{{$randomInt}} 随机0-1000
{{$gui}} 随机guid
自定义动态参数
script->pre-request
var times= Date.now();
pm.globals.set("times",times)
使用时
{{times}}
断言
断言一般包括
- 状态断言
- 业务断言
常用断言
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
自定义动态参数的断言
create-tag请求中
将动态参数在pre-request
var tagname = "tag"+Math.random().toString(36).substring(2,15)
pm.globals.set("tagname", tagname);
body中使用tagname
{
"tag": {
"name": "{{tagname}}" //标签名 }
}
}
在断言中
添加方式
pm.globals.get("tagname")
globals.tagname
globals["tagname"]
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
console.log(responseBody)
var tagid = responseBody.match(new RegExp('"id":(.*?),'));
console.log(tagid[1])
//设置标签为全局变量
pm.globals.set("tagid", tagid[1]);
设置变量 tagname
tagname = pm.globals.get("tagname");
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.tag.name).to.eql(tagname);
});
全局断言
数据驱动
1.先写参数csv
2.在请求中设置对应参数
3.修改断言
4.执行测试用例时上传参数csv文件