邮递员-如何使用条件IF和特定属性的特定期望值创建测试

时间:2019-04-02 18:00:33

标签: json postman

我是JSON和Postman的新手,并通过学习曲线继续我的努力。我对另一个简单的操作有疑问。

我创建了一个GET请求,该请求将获得一个JSON响应,如下所示。

在下面的示例中,我想创建一个仅在(主)“ IsArchived”值等于“ true”时通过的测试,否则它将失败

我该怎么办?预先感谢

我已经尝试了以下方法,但是这些方法似乎都不起作用。 这一次失败并出现错误:“未定义响应”

pm.test("Value Equal TRUE", function() {
    pm.expect(response.json().IsArchived).to.be.true
});

即使我将下面的响应设置为“ === false”,也始终会通过。

pm.test("Item Is Archived", function() {
    if (pm.response.json().IsArchived === true) {
        pm.response.to.have.status(200);
    } 
});

这是我的回复:

{
    "Id": 1328,
    "Name": "AAA Test",
    "Owner": {
        "Id": 208,
        "Name": "The Boss"
    },
    "FieldGroups": [
        {
            "Id": "c81376f0-6ac3-4028-8d61-76a0f815dbf8",
            "Name": "General",
            "FieldDefinitions": [
                {
                    "Id": 1,
                    "DisplayName": "Product Name",
                    "IsArchived": false
                },
                {
                    "Id": 2,
                    "DisplayName": "Short Description",
                    "IsArchived": false
                },
                {
                    "Id": 33,
                    "DisplayName": "Long Description",
                    "IsArchived": false
                },
            ]
        },
        {
            "Id": "5ed8746b-0fa8-4022-8216-ad3af17db91f",
            "Name": "Somethingelse",
            "FieldDefinitions": [
                {
                    "Id": 123,
                     "DisplayName": "Attribution",
                    "IsArchived": false
                },
                {
                    "Id": 1584,
                    "DisplayName": "FC1",
                    "IsArchived": false
                },
                {
                    "Id": 623,
                    "DisplayName": "Sizes",
                    "IsArchived": false,
                    "Owner": {
                        "Id": 208,
                        "Name": "The Boss"
                    },
                    "Unit": "",
                    "Options": [
                        {
                            "Id": 1,
                            "Value": "XS"
                        },
                        {
                            "Id": 2,
                            "Value": "S"
                        },
                        {
                            "Id": 3,
                            "Value": "M"
                        }
                    ]
                }
             ]
        }
    ],
    "IsArchived": false
    "Version": 1
}

1 个答案:

答案 0 :(得分:0)

这将起作用。

pm.test("Value Equal TRUE", function() {
    pm.expect(pm.response.json().IsArchived).to.be.true
});
  

“未定义响应”

  • 由于缺少“ pm”而发生错误。在这种情况下。

我假设IsArchived元素是响应中的倒数第二个元素。如果不是,则可能需要相应地更改层次结构。