【问题标题】:After two sequentials requests the PostMan response object contains response of first request在两个连续请求之后,PostMan 响应对象包含第一个请求的响应
【发布时间】:2020-10-22 16:19:38
【问题描述】:

在发布请求后,我想将来自两个不同获取请求的一些属性保存为环境变量。

在从第二个请求中提取数据的代码行中,PostMan 给出了“TypeError: Cannot read property 'length' of undefined”。

原因是我期望在第二个请求的响应中有一个数组,但没有。通过登录控制台,我注意到虽然第二个请求的响应显示了这个数组,但 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
          }; 
       }
    });

【问题讨论】:

    标签: javascript postman


    【解决方案1】:

    我把这个请求放在另一个请求的Testscript中的原因是为了减少我集合中的请求数。

    现在我意识到 pm.sendRequest 本质上是一个异步请求,并且您无法控制不同请求的执行顺序。所以最好不要在您的 TestScript 中使用一个 pm.sendRequest 方法。

    【讨论】:

    • pm.sendRequest 无论如何都会在请求范围的末尾执行。知道了这一点,您也许可以解决它。
    猜你喜欢
    • 2017-08-06
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多