使用 Postman 验证 JSON 模式
Validate JSON Schema using Postman
我正在尝试验证我的响应 JSON 模式,但我总是遇到失败的测试用例,
返回 JSON 响应是:
[
{
"registrationOriginDateTime": "2021-11-27T21:11:11.000Z",
"eventId": "qc0081902",
"badgeId": "12367",
"customerGuid": "322245671253455",
"products": [],
"status": "registered",
"demographics": []
}
]
我正在使用以下方法验证架构,
var jsonSchema = {
"type": "array",
"items":{
type: "object",
properties:
{
"registrationOriginDateTime": {"type":"string"},
"eventId": {"type":"string"},
"badgeId": {"type":"string"},
"customerGuid": {"type":"string"},
"products": {"type":"string"},
"status": {"type":"string"},
"demographics": {"type":"string"}
}
}
}
pm.test('Response schema type nodes verification', function() {
pm.expect(tv4.validate(pm.response.json(), jsonSchema)).to.be.true;
});
然而它失败了。
有人可以帮我解决这个问题吗?
您的对象“产品”和“人口统计”的模式是数组类型,其中的项目是字符串,见下文:
//set Response Body variable
var jsonData = pm.response.json();
//set Response Schema variable
var schema = {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"registrationOriginDateTime": {"type": "string"},
"eventId": {"type": "string"},
"badgeId": {"type": "string"},
"customerGuid": {"type": "string"},
"products": {"type": "array",
"items": {"type": "string"}
},
"status": {"type": "string"},
"demographics": {"type": "array",
"items": {"type": "string"}
}
}
}
};
//validate Response Schema against Response Body
pm.test('Response schema type nodes verification', function() {
pm.expect(tv4.validate(jsonData, JSON.parse(schema), false, true), tv4.error).to.be.true;
});
为了使测试更清晰,我将模式 a 作为值保存到具有键 responseSchema
的全局变量,因此 var 模式声明如下所示:
var schema = pm.globals.get("responseSchema");
我正在尝试验证我的响应 JSON 模式,但我总是遇到失败的测试用例,
返回 JSON 响应是:
[
{
"registrationOriginDateTime": "2021-11-27T21:11:11.000Z",
"eventId": "qc0081902",
"badgeId": "12367",
"customerGuid": "322245671253455",
"products": [],
"status": "registered",
"demographics": []
}
]
我正在使用以下方法验证架构,
var jsonSchema = {
"type": "array",
"items":{
type: "object",
properties:
{
"registrationOriginDateTime": {"type":"string"},
"eventId": {"type":"string"},
"badgeId": {"type":"string"},
"customerGuid": {"type":"string"},
"products": {"type":"string"},
"status": {"type":"string"},
"demographics": {"type":"string"}
}
}
}
pm.test('Response schema type nodes verification', function() {
pm.expect(tv4.validate(pm.response.json(), jsonSchema)).to.be.true;
});
然而它失败了。 有人可以帮我解决这个问题吗?
您的对象“产品”和“人口统计”的模式是数组类型,其中的项目是字符串,见下文:
//set Response Body variable
var jsonData = pm.response.json();
//set Response Schema variable
var schema = {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"registrationOriginDateTime": {"type": "string"},
"eventId": {"type": "string"},
"badgeId": {"type": "string"},
"customerGuid": {"type": "string"},
"products": {"type": "array",
"items": {"type": "string"}
},
"status": {"type": "string"},
"demographics": {"type": "array",
"items": {"type": "string"}
}
}
}
};
//validate Response Schema against Response Body
pm.test('Response schema type nodes verification', function() {
pm.expect(tv4.validate(jsonData, JSON.parse(schema), false, true), tv4.error).to.be.true;
});
为了使测试更清晰,我将模式 a 作为值保存到具有键 responseSchema
的全局变量,因此 var 模式声明如下所示:
var schema = pm.globals.get("responseSchema");