在两个顺序请求之后,PostMan响应对象包含第一个请求的响应



Post请求后,我想将两个不同Get请求中的一些属性保存为环境变量。

在从第二请求提取数据的代码行中,PostMan给出了一个";TypeError:无法读取未定义的"的属性"length";。

原因是我期望在第二个请求的响应中有一个数组,但没有。通过登录控制台,我注意到尽管第二个请求的响应显示了这个数组,但PostMan响应对象包含了第一个请求的回应。我试图弄清楚原因,但找不到线索。这是我的代码:

var request1 = "The first request"
pm.sendRequest(request1, function () 
{
var jsonData1 = pm.response.json();
pm.environment.set("CCIdNewBranch", jsonData1.id);  
});
var request2 = "The second request"
pm.sendRequest(request2, function () 
{
var jsonData2  = pm.response.json();

for (var i = 0; i < jsonData2.data.length; i++) 
{
if (jsonData2.data[i].rdcNumber == pm.environment.get("RdcNNewBranch"))
{
pm.environment.set ("DmsIIdNewBranch",jsonData2.data[i].dmsInstanceId)
break
}; 
}
});

我将这些请求放在另一个请求的测试脚本中的原因是为了减少集合中的请求数量。

现在我意识到pm.sendRequest本质上是一个异步请求,您无法控制不同请求的执行顺序。因此,在您的TestScript中最好不要只有一个pm.sendRequest方法。

最新更新