使用邮递员从两个不同的响应中获取值以相互主张

时间:2019-04-09 00:42:13

标签: json automated-tests postman

我有一个要在Postman中运行的测试,在这里我想声明两组数组。每个数组的数据将来自单独的响应。

所以我想我应该打电话来获得期望的结果,然后在该响应的测试中将它们设置为变量,然后在下一个响应的“测试”部分中使用该变量来针对。我的问题是如何将两个数组存储到JSON响应的变量中。它们采用不同的格式。

这是我的预期结果答复。在这里,我需要设置一个变量以获取所有“名称”值,因此我希望变量保留[4],[FX01 - Yandi],[FX03 - Whaleback]

[
    {
        "id": 16,
        "name": "4",
        "description": "44"
    },
    {
        "id": 9,
        "name": "FX01 - Yandi",
        "description": ""
    },
    {
        "id": 10,
        "name": "FX03 - Whaleback",
        "description": ""
    },
]

这是我的实际结果响应,我想在“ sites”元素下获取所有“名称”值,因此我再次希望看到[4],[FX01 - Yandi],[FX03 - Whaleback]的数组与我之前的数组匹配然后断言。

{
    "sites": [
        {
            "id": 16,
            "name": "4",
            "description": "44"
        },
        {
            "id": 9,
            "name": "FX01 - Yandi",
            "description": ""
        },
        {
            "id": 10,
            "name": "FX03 - Whaleback",
            "description": ""
        },
    ],
    "shutdownTypes": [
        {
            "id": 5,
            "name": "Major",
            "description": ""
        },
        {
            "id": 4,
            "name": "Minor",
            "description": ""
        },
        {
            "id": 7,
            "name": "vc",
            "description": "vcvcx"
        },
        {
            "id": 6,
            "name": "vcc",
            "description": "vcxe33&*(&*^%$#\":}{><?/"
        }
    ],
}

1 个答案:

答案 0 :(得分:1)

在您的第一个请求测试中,获取必需的元素并将其推送到数组并将该数组设置为环境变量。

var jsonData = pm.response.json();
var array = [];

jsonData.forEach(function(element) {
  array.push(element.name);
});

pm.environment.set("pre_request_array", array);

在您的第二个请求测试中,获取我们先前设置的环境变量,现在可以比较两者:

var jsonData = pm.response.json();
var currArray = [];

var prevArray = pm.environment.get("pre_request_array");

jsonData.sites.forEach(function(element) {
  currArray.push(element.name);
});

console.log(prevArray);
console.log(currArray);

//TODO: add compare logic here

在控制台中,您可以在以下屏幕中找到输出。

enter image description here