apifox脚本编写
前言
在apifox中,我们可以通过脚本实现很多方便的操作,例如可以通过前置脚本来实现自动登录(校验token过期自动在脚本中调用登录重新获取token),在后置脚本中实现对返回结果的校验和参数的提取(利用脚本提取的临时变量不拘泥于某个测试场景,可以在不同的场景间重复使用)。下面是我平时常用的一些脚本片段,作为笔记供自己查阅,若能帮到阁下,实属荣幸。
1.常规校验
校验返回的json
中的数据。
var data = pm.response.json().data;
pm.test("查询校验", function () {
// 等于
pm.expect(data.postName).to.eql("电工");
// 包含字符串
pm.expect(data.mark).to.have.string('备注');
});
pm.variables.set("tem_id", tem.id);
校验数组。
var data = pm.response.json().data;
pm.test("参数校验", function() {
// 检查 data 是否是数组
pm.expect(data).to.be.an('array');
var flag = false;
for(var i = 0; i < data.length; i++) {
if (data[i].id === 'eceb2081d87fc40ef5ff4cfdcfd3e5a3') {
flag = true;
break;
}
}
pm.expect(flag).to.eql(true);
})
// 取出 data 数组中每个对象的 id 属性,并拼接成字符串
const ids_d = data.map(o => o.id).join(',');
// 设置临时变量
pm.variables.set("ids_d", ids_d);