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

时间:2020-10-21 16:10:15

标签: javascript postman

发布请求后,我想将两个不同的“获取请求”中的某些属性另存为环境变量。

在代码行中,从第二个请求中提取数据,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
          }; 
       }
    });

1 个答案:

答案 0 :(得分:0)

我将此请求放入另一个请求的Testscript中的原因是为了减少集合中的请求数量。

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