You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Postman验证接口响应JSON Schema时测试用例持续失败如何解决

问题根因
  • 核心类型不匹配:你定义的Schema中products和demographics字段的类型标注为string,但实际接口返回的两个字段值均为数组[],类型不一致直接导致校验失败。
  • Schema语法不规范:items下的type属性未添加双引号,不符合严格JSON Schema语法规范,部分校验场景下会触发解析错误。
修复方案

将Schema中两个数组字段的类型修正为array,同时规范Schema属性的引号写法,修正后的完整验证代码如下:

var jsonSchema = {
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "registrationOriginDateTime": {"type":"string"},
      "eventId": {"type":"string"},
      "badgeId": {"type":"string"},
      "customerGuid": {"type":"string"},
      "products": {"type":"array"},
      "status": {"type":"string"},
      "demographics": {"type":"array"}
    },
    // 可选配置:如果要求所有字段必须存在,添加required列表避免漏字段通过校验
    "required": ["registrationOriginDateTime", "eventId", "badgeId", "customerGuid", "products", "status", "demographics"]
  }
}

pm.test('Response schema type nodes verification', function() {
  pm.expect(tv4.validate(pm.response.json(), jsonSchema)).to.be.true;
  // 校验失败时打印具体错误信息,方便后续排查
  if(tv4.error) console.error("Schema校验错误:", tv4.error);
});

如果数组内还有固定的元素结构,你可以继续给products和demographics字段补充items属性定义子元素的Schema规则。

内容的提问来源于stack exchange,提问作者Taimoor Pasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:15:09