Json 使用Postman从两个不同的响应中获取值以相互断言
我有一个测试要在Postman中运行,我想在其中声明两组数组。来自每个数组的数据将来自不同的响应 所以我想我会打一个电话来得到我预期的结果,在对该响应的测试中,我会将它们设置在一个变量中,然后在下一个响应的测试部分使用该变量来断言。我的问题是如何将这两个数组存储到JSON响应的变量中。它们有不同的格式 以下是我对预期结果的回应。这里我需要设置一个变量来获取所有的“name”值,所以我希望我的变量能够保存Json 使用Postman从两个不同的响应中获取值以相互断言,json,automated-tests,postman,Json,Automated Tests,Postman,我有一个测试要在Postman中运行,我想在其中声明两组数组。来自每个数组的数据将来自不同的响应 所以我想我会打一个电话来得到我预期的结果,在对该响应的测试中,我会将它们设置在一个变量中,然后在下一个响应的测试部分使用该变量来断言。我的问题是如何将这两个数组存储到JSON响应的变量中。它们有不同的格式 以下是我对预期结果的回应。这里我需要设置一个变量来获取所有的“name”值,所以我希望我的变量能够保存[4],[FX01-Yandi],[FX03-Whaleback] [ {
[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中获取元素*我通常会打印控制台日志,检查接收到的数据类型,然后挖掘我想要的底层元素。