如何验证 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])
    })
})