这就是我正在尝试的方法,但是即使结果很差,它也始终可以通过测试。

pm.test("Schema is valid", function () {
    var data = pm.response.json();
    var schema = {
        ...
        my schema
        ...
    };
    tv4.validate(data, schema);
});

最佳答案

这不起作用的原因是(简而言之)不再维护Postman(tv4)使用的基础库。今天早些时候遇到了这个问题,我发现了一个solution:

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;
});

关于postman - 如何使用tv4在 postman 中测试JSON模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48098530/

10-10 15:55