如何验证 json 响应中的数组?
How to validate array in json response?
你们好,
我想知道如何使用 postman 验证数组
我有这个答案:
{
"documents": [
{
"documentType": "FORM",
"attributes": [
{
"kind": {
"code": "COMPANY",
"name": "Company name"
},
"value": "KKO",
"confidence": 0.0
},
{
"kind": {
"code": "AGREEMENT",
"name": "Agreement number"
},
"value": "123",
"confidence": 0.0
},
{
"kind": {
"code": "DATE_OF_ISSUE",
"name": "When it was created"
},
"value": "01/01/2019",
"confidence": 0.0
}
}
我想验证第二个属性:
{
"kind": {
"code": "AGREEMENT",
"name": "Agreement number"
},
包括value
字段
"value": "123",
"confidence": 0.0
},
我想知道验证这一点的最简单方法是什么?
我试过这样写路径:
const response = pm.response.json()
attribute1 = response.data.documents[0];
attribute2 = response.data.documents[1];
attribute3 = response.data.documents[3];
pm.expect(attributes[1].kind.code).to.equal("AGREEMENT");
pm.expect(attributes[1].kind.name).to.equal("Agreement number");
但是太繁重又费时
如果您能与我分享您的经验并提供解决问题的线索,我将不胜感激。
提前致谢
pm.expect([1,2,3,4,5]).to.deep.equal([1,2,3,4,5])
或
pm.expect(_.isEqual([1,2,3,4,5],[1,2,3,4,5])).to.be.true
所以在你的情况下:
pm.expect([
{
"kind": {
"code": "COMPANY",
"name": "Company name"
},
"value": "KKO",
"confidence": 0.0
},
{
"kind": {
"code": "AGREEMENT",
"name": "Agreement number"
},
"value": "123",
"confidence": 0.0
},
{
"kind": {
"code": "DATE_OF_ISSUE",
"name": "When it was created"
},
"value": "01/01/2019",
"confidence": 0.0
}]).to.deep.equal([
{
"kind": {
"code": "COMPANY",
"name": "Company name"
},
"value": "KKO",
"confidence": 0.0
},
{
"kind": {
"code": "AGREEMENT",
"name": "Agreement number"
},
"value": "123",
"confidence": 0.0
},
{
"kind": {
"code": "DATE_OF_ISSUE",
"name": "When it was created"
},
"value": "01/01/2019",
"confidence": 0.0
}])
更新
name = ["Company name", "Agreement number", "When it was created"]
value = ["KKO", "123", "01/01/2019"]
pm.test("something", function () {
a.forEach((a, i) => {
pm.expect(a.kind.name).to.be.equal(name[i])
pm.expect(a.value).to.be.equal(value[i])
})
})
你们好,
我想知道如何使用 postman 验证数组
我有这个答案:
{
"documents": [
{
"documentType": "FORM",
"attributes": [
{
"kind": {
"code": "COMPANY",
"name": "Company name"
},
"value": "KKO",
"confidence": 0.0
},
{
"kind": {
"code": "AGREEMENT",
"name": "Agreement number"
},
"value": "123",
"confidence": 0.0
},
{
"kind": {
"code": "DATE_OF_ISSUE",
"name": "When it was created"
},
"value": "01/01/2019",
"confidence": 0.0
}
}
我想验证第二个属性:
{
"kind": {
"code": "AGREEMENT",
"name": "Agreement number"
},
包括value
字段
"value": "123",
"confidence": 0.0
},
我想知道验证这一点的最简单方法是什么?
我试过这样写路径:
const response = pm.response.json()
attribute1 = response.data.documents[0];
attribute2 = response.data.documents[1];
attribute3 = response.data.documents[3];
pm.expect(attributes[1].kind.code).to.equal("AGREEMENT");
pm.expect(attributes[1].kind.name).to.equal("Agreement number");
但是太繁重又费时
如果您能与我分享您的经验并提供解决问题的线索,我将不胜感激。
提前致谢
pm.expect([1,2,3,4,5]).to.deep.equal([1,2,3,4,5])
或
pm.expect(_.isEqual([1,2,3,4,5],[1,2,3,4,5])).to.be.true
所以在你的情况下:
pm.expect([
{
"kind": {
"code": "COMPANY",
"name": "Company name"
},
"value": "KKO",
"confidence": 0.0
},
{
"kind": {
"code": "AGREEMENT",
"name": "Agreement number"
},
"value": "123",
"confidence": 0.0
},
{
"kind": {
"code": "DATE_OF_ISSUE",
"name": "When it was created"
},
"value": "01/01/2019",
"confidence": 0.0
}]).to.deep.equal([
{
"kind": {
"code": "COMPANY",
"name": "Company name"
},
"value": "KKO",
"confidence": 0.0
},
{
"kind": {
"code": "AGREEMENT",
"name": "Agreement number"
},
"value": "123",
"confidence": 0.0
},
{
"kind": {
"code": "DATE_OF_ISSUE",
"name": "When it was created"
},
"value": "01/01/2019",
"confidence": 0.0
}])
更新
name = ["Company name", "Agreement number", "When it was created"]
value = ["KKO", "123", "01/01/2019"]
pm.test("something", function () {
a.forEach((a, i) => {
pm.expect(a.kind.name).to.be.equal(name[i])
pm.expect(a.value).to.be.equal(value[i])
})
})