如何在Postman的pm.expect断言中开启showDiff显示实际与预期值差异
Postman断言开启showDiff输出差异对比配置方法
Postman目前没有全局配置项可以直接统一设置所有断言的showDiff为true,调整断言写法即可触发差异对比输出,具体方法如下:
- 方法1:使用深度相等断言对比引用类型数据
对比对象、数组等引用类型数据时,不要使用严格相等断言.equal(),改用深度相等断言.eql(),Postman会自动将该类断言报错的showDiff标识设为true,控制台直接输出差异对比。
示例代码:pm.test("响应数据匹配预期", function () { const expectedRes = { code: 0, message: "操作成功", data: {id: 123, name: "测试数据"} } pm.expect(pm.response.json()).to.eql(expectedRes) })注意:字符串、数字等基础类型数据对比时,使用
.equal()也会自动触发差异输出,无需额外修改。 - 方法2:自定义断言主动抛出带对比属性的错误
如果是自定义校验逻辑,你可以主动抛出包含actual(实际值)、expected(预期值)属性的错误对象,同时手动设置showDiff: true,Postman控制台会自动识别属性并展示差异:
示例代码:pm.test("自定义逻辑校验", function () { const actual = pm.response.json().data.list const expected = ["item1", "item2", "item3"] // 自定义校验逻辑 if (actual.length !== expected.length || !actual.every((item, index) => item === expected[index])) { const err = new Error("列表数据不符合预期") err.actual = actual err.expected = expected err.showDiff = true throw err } })
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

