一、Postman的动态参数
第一种:系统自带的动态参数
{{$timestamp}} // 动态时间戳
{{$randomInt}} // 动态0~1000的整型
{{$guid}} // 动态guid字符串
第二种:自定义的动态参数
// 自定义动态参数生成随机数
var times = Date.now();
apt.globals.set("times", times);
// 定时5秒再执行
const sleep = (milliseconds) => {
const start = Date.now();
while (Date.now() <= start + milliseconds) { }
};
sleep(5000);
二、Postman的业务闭环用例
三、Postman的断言
检查返回的状态码是否为200(常用)
检查返回的数据中包括有指定的字符串(常用)
检查json中的一个字段的值(常用)
检查返回的值等于一个指定的字符串(常用)
检查是否包含有content-type响应头
检查请求的时间少于200ms
检查返回的状态码是否在数组中
检查状态信息是指定的字符串
apt.test("检查返回的状态码是200", function () {
apt.response.to.have.status(200);
});
apt.test("检查返回的结果中包括指定字符串", function() {
apt.expect(apt.response.text()).to.include("access_token");
});
apt.test("检查json中的一个字段的值", function() {
var jsonData = apt.response.json;
apt.expect(jsonData.expires_in).to.eql(7200);
});
apt.test("检查是否包含有content-type响应头", function() {
apt.response.to.have.header("Content-Type");
});
一旦需要断言随机数,那么就必须使用自定义动态参数并且要注意以下事项:
在断言中不能够使用{{}}的方式取全局变量
一般通过apt.globals.get("times")获取
四、Postman批量运行测试用例
特别要注意:文件上传的接口在做批量运行的时候会报错:需要将文件放入postman默认上传文件中。
五、Postman的参数化(CSV,JSON)
第一组数据
{
"access_token":"65_Ma0BiLU2_o9TKrPtPist3dJ_iu2lTJnagCy95WCONd024NKTc0OU_E_VgY094Lu3mpc4M2coF8sgk6L1K-e8BGY9wMrZi9bu76Cu5V3h6fvnO6kNkIoA_CaD3cIHEeAFALKH",
"expires_in": 7200
}
第二组数据
{
"errcode": 40002,
"errmsg": "invalid grant_type rid: 63f2ec33-033f6b7f-15fc0616"
}
特别注意:在断言中取数据文件的值,不能使用:apt.globals.get("times"),而是要使用:data.times