这就是我正在尝试的,但即使结果不好,它也总是通过测试。
pm.test("Schema is valid", function () {
var data = pm.response.json();
var schema = {
...
my schema
...
};
tv4.validate(data, schema);
});
这不起作用的原因是(简而言之)Postman(tv4)使用的底层库不再维护。今天早些时候遇到了这个问题,我找到了一个解决方案:
tv4.validate(data, schema, false, true)
后两个参数是 checkRecursive 和banUnknownProperties。如上所示设置这两个标志使验证按预期工作。
您可能还会发现此代码片段很有用,它通过控制台报告任何验证错误:
pm.test("Response body is valid", function() {
var data = JSON.parse(responseBody);
var valid = tv4.validate(data, schema, false, true);
if (valid !== true) {
console.log(tv4.error);
}
pm.expect(valid).to.be.true;
});