我有一个要在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&*(&*^%$#\":}{><?/"
}
],
}
答案 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
在控制台中,您可以在以下屏幕中找到输出。