Postman之断言
时间: 2025-01-06 20:37:52 浏览: 13
如何在 Postman 中实现和使用断言
使用内置断言功能
Postman 提供了两种类型的断言方式:一是平台自带的断言脚本;二是依据特定测试需求编写的自定义断言脚本[^1]。对于初学者来说,利用 Postman 自带的断言选项是一个便捷的选择。这些预设好的断言可以直接用于验证响应状态码、时间、头部信息以及 JSON 或 XML 响应体中的字段。
编写自定义断验脚本
为了满足更复杂的业务逻辑检验,在 Tests
标签页下可以编写 JavaScript 代码来进行详细的断言操作[^2]。下面给出一段简单的例子展示如何通过编程的方式设置断言:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// 验证返回数据中是否存在某个键值对
var jsonData = pm.response.json();
pm.test("Your test name", function () {
pm.expect(jsonData).to.have.property('keyName');
});
这段代码首先检查 HTTP 请求的状态码是否为 200 表示成功请求,接着进一步确认服务器端返回的数据结构里含有预期的关键字 "keyName"。
处理复杂场景下的断言
当面对较为复杂的测试情况时,比如需要遍历数组并对每一个元素做单独校验的情况,则可以通过组合使用循环语句和其他条件判断来完成更加精细的控制[^4]。例如针对 banner 列表为空与否及其内部项的具体属性进行多重层次上的核查:
const banners = pm.response.json().banners;
if (Array.isArray(banners) && banners.length > 0){
for(let i=0; i<banners.length;i++){
let item = banners[i];
pm.test(`Banner ${i} has valid image`, ()=>{
pm.expect(item.image_url).to.be.a('string').and.not.empty;
});
pm.test(`Banner ${i} link exists`, ()=>{
pm.expect(item.link).to.exist.and.is.a('string');
});
}
}else{
console.log("No banners found");
}
此段代码实现了对非空 banner 数组成员逐个检测其图像 URL 和链接的有效性的目的。