postman 基于测试的对象模糊搜索

w1jd8yoj  于 2023-08-05  发布在  Postman
关注(0)|答案(1)|浏览(192)

我有一个这样的JSON

{
    "accounts": {
        "7-PIGGY_BANK-2739": {
            "timestamp": "2023-07-11T14:08:23.327",
            "state": "PRODUCT_ACTUAL",
            "entitySubSystems": "CFT",
            "number": "2739",
            "entityType": "PIGGY_BANK",
            "entityId": "2739",
            "entityLocalId": "2739"
        },
        "17-CREDIT_CARD_ACCOUNT-1687": {
            "timestamp": "2023-07-11T14:08:22.81",
            "state": "PRODUCT_ACTUAL",
            "entitySubSystems": "OPENW",
            "number": "1687",
            "entityType": "CREDIT_CARD_ACCOUNT",
            "entityId": "1687",
            "entityLocalId": "1687"
        }

    },
    "deposites": {
        "7-DEPOSIT-0495": {
            "timestamp": "2023-07-11T14:08:23.327",
            "state": "PRODUCT_ACTUAL",
            "entitySubSystems": "CFT",
            "number": "0495",
            "entityType": "DEPOSIT",
            "entityId": "4495",
            "entityLocalId": "20495"
        }
    },
    "cards": {
        "17-DEBET_CARD-07820": {
            "timestamp": "2023-07-11T14:08:22.809",
            "state": "PRODUCT_ACTUAL",
            "entitySubSystems": "OPENW",
            "number": "07820",
            "entityType": "DEBET_CARD",
            "entityId": "40367",
            "entityLocalId": "07820"
        }
    }
}

字符串
我想检查“entitySubSystems”和其他一些参数在响应中。问题是块内的对象名称是不同的。这取决于客户端ID。
最后,我想做一个这样的测试。“CFT - Piggy_Bank测试”如果至少有一个帐户,则通过。
如何正确地解析它进行这样的测试?或者几乎不可能?)
我试过forEach,但是因为名字不同,所以不能正常工作。

55ooxyrt

55ooxyrt1#

你可以不用循环就能做到这一点,而且一点也不难。
在JavaScript中,您可以使用以下代码检查JSON对象是否有任何键。

Object.keys(your_object)

字符串
您可以使用它来满足您的要求如下:

pm.test("CFT-Piggy_Bank_Atleast_One_Acc", function () {
    pm.expect(Object.keys(pm.response.json().accounts).length).to.greaterThan(0);
});

相关问题