Json 使用Postman从两个不同的响应中获取值以相互断言

Json 使用Postman从两个不同的响应中获取值以相互断言,json,automated-tests,postman,Json,Automated Tests,Postman,我有一个测试要在Postman中运行,我想在其中声明两组数组。来自每个数组的数据将来自不同的响应 所以我想我会打一个电话来得到我预期的结果,在对该响应的测试中,我会将它们设置在一个变量中,然后在下一个响应的测试部分使用该变量来断言。我的问题是如何将这两个数组存储到JSON响应的变量中。它们有不同的格式 以下是我对预期结果的回应。这里我需要设置一个变量来获取所有的“name”值,所以我希望我的变量能够保存[4],[FX01-Yandi],[FX03-Whaleback] [ {

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

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

以下是我对预期结果的回应。这里我需要设置一个变量来获取所有的“name”值,所以我希望我的变量能够保存
[4],[FX01-Yandi],[FX03-Whaleback]

[
    {
        "id": 16,
        "name": "4",
        "description": "44"
    },
    {
        "id": 9,
        "name": "FX01 - Yandi",
        "description": ""
    },
    {
        "id": 10,
        "name": "FX03 - Whaleback",
        "description": ""
    },
]
这是我的实际结果响应,我想获取“sites”元素下的所有“name”值,因此我希望再次看到一个数组
[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&*(&*^%$#\":}{><?/"
        }
    ],
}
{
“地点”:[
{
“id”:16,
“名称”:“4”,
“说明”:“44”
},
{
“id”:9,
“名称”:“FX01-炎帝”,
“说明”:”
},
{
“id”:10,
“名称”:“FX03-鲸背”,
“说明”:”
},
],
“关机类型”:[
{
“id”:5,
“姓名”:“少校”,
“说明”:”
},
{
“id”:4,
“姓名”:“未成年人”,
“说明”:”
},
{
“id”:7,
“名称”:“vc”,
“说明”:“VCX”
},
{
“id”:6,
“名称”:“vcc”,

“description:“vcxe33&*(&*^%$\”:}{>在您的第一个请求测试中,获取所需元素并将其推送到数组中,然后将该数组设置到环境变量中

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
在控制台中,您可以在屏幕下方找到输出


太棒了。我很高兴能帮上忙。我开始一次一小片地看这个。你有没有特别推荐的参考资料用于从JSON中获取元素以用于测试?我一直在努力寻找这类东西的指南。很高兴我能帮到你!我想没有专门的资料*用于从JSON中获取元素*我通常会打印控制台日志,检查接收到的数据类型,然后挖掘我想要的底层元素。