在arrayman的邮递员中验证json输出的测试

时间:2020-07-16 05:28:23

标签: arrays json testing postman

具有不带任何消息的json输出。如何仅针对用户特定的值验证测试?我想让我的测试来验证用户,名字,角色以及多少个办公室

{
    "Status": "OK",
    "Message": "",
    "users": [
        {
            "address": {
                "city": "test",
                "state": "CL",
                "zip": "60585"
            },
            "mobile": "",
            "userId": "789455061",
            "email": "test@abc.com",
            "enabled": true,
            "fax": "",
            "firstName": "fortest",
            "id": "6ec-asd-132",
            "lastName": "test",
            "licensedStates": [],
            "connectid": "123456",
            "organizations": [
                {
                    "OrgID": "110465",
                    "offices": [
                        {
                            "OrgID": "11465",
                            "address": {
                                "city": "newcity",
                                "state": "BL",
                                "zip": "60585"
                            },
                            "id": "",
                            "name": "Test Data Pvt LTd"
                        }
                    ],
                    "id": "789434",
                    "name": "Test Data Pvt Ltd"
                }
            ],
            "phone": "",
            "roles": {
                "Tester": true,
                "Dev": false,
                "Manager": false
            },
            "suffix": "",
            "title": ""
        }
    ]
}

将响应json声明为变量。然后尝试,然后也需要角色。

pm.test("testfordata",responsejson.users[0].enabled.is.equal(true);

错误:无法读取'undefined'的'equal'属性

1 个答案:

答案 0 :(得分:0)

这是一个非常有针对性的测试,仅基于上面的数据集,没有考虑检查users数组中的第一个对象以外的情况:

pm.test("testfordata", function () {
    let jsonData = pm.response.json();
    pm.expect(jsonData.users[0].enabled).to.be.true
    pm.expect(jsonData.users[0].firstName).to.equal("fortest")
    pm.expect(jsonData.users[0].roles).to.have.keys(["Tester", "Dev", "Manager"])
    pm.expect(jsonData.users[0].organizations[0].offices.length).to.equal(1)
});