【问题标题】:Postman - Use part of the response data from one test in another testPostman - 在另一个测试中使用来自一个测试的部分响应数据
【发布时间】:2019-07-09 05:55:15
【问题描述】:

我需要帮助来执行需要另一个测试的响应输出的邮递员测试。我已经检查了各种论坛,但没有针对这种特定情况的解决方案。

例子

测试 1 响应:

{
"items": [
    {
        "email": "archer+qa01@gmail.com",
        "DocumentName": "tc",
        "type": "URL",
        "url": "https://localhost:8443/user/terms?statusno=a5f2-eq2wd3ee45rrr"
     }
  ]
}

测试 2:

我需要使用来自Test 1 的响应数据的a5f2-eq2wd3ee45rrr 部分,这可以在上面的url 值中看到。我需要在Test 2中使用这个值

如何使用 Postman 完成这项工作?

【问题讨论】:

    标签: postman


    【解决方案1】:

    不完全确定问题的响应数据格式是什么,但如果它是一个只有 url 属性的简单对象,您可以使用如下简单的东西:

    var str = pm.response.json().url
    pm.environment.set('value', str.split('=', 2)[1])
    

    这会将您需要的值设置为一个变量,以便您在下一个请求中使用 POST 请求正文中的 {{value}} 语法或在其中一个测试脚本中使用 pm.environment.get('value')

    编辑:

    如果url 属性在一个数组中,您可以遍历这些并以这种方式提取值。这将设置变量,但如果数组中有超过 1 个 url 属性,它将设置它找到的最后一个。

    _.each(pm.response.json(), (arrItem) => {
        pm.environment.set('value', arrItem[0].url.split('=', 2)[1])
    })
    

    【讨论】:

    • 当我尝试使用您的建议运行时出现错误错误:“评估测试脚本时出错:TypeError: Cannot read property 'split' of undefined”
    • @Archer 我更新了我的答案,因为看起来响应不是一个简单的对象 - 让我知道这是否有效。
    • 遇到同样的错误“无法读取未定义的属性‘拆分’”。我会尝试其他一些方法,看看是否有任何适用于这种情况的方法。
    • @Archer 实际响应是什么样的?更新问题以显示这一点,有人可以给你正确的答案。
    • 我已经用实际回复更新了我的问题,希望它能给出清晰的画面。谢谢
    【解决方案2】:

    如果您收到 JSON 响应,然后在正文中发送 JSON,我会执行以下操作:

    1) 在测试脚本中(javascript):

    var JsonBody = pm.response.json();
    var strToParse = JsonBody.url;
    var value = strToParse.slice(indexOf("?status=")+"?status=".length);//parse string 
    //manually but you can google for a better solutions.
    pm.environment.get("varName" , value) 
    

    2) 你可以使用它!在像 pm.environment.get("varName") 这样的脚本中,以及在其他任何地方使用 {{varName}}

    【讨论】:

    • 我已经检查了脚本。我收到一条错误消息,提示“运行时出现错误:TypeError: Cannot read property 'slice' of undefined”
    • @Archer 我认为这意味着您没有得到预期的响应,请尝试在脚本中使用一些 console.log() 来检查值,并在邮递员中使用控制台 ctrl+alt+c
    • 当然,我在控制台日志中检查过,我得到了同样的错误。我也会用其他方式检查。
    猜你喜欢
    • 2014-01-26
    • 2020-04-10
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2014-01-25
    • 2021-12-01
    • 1970-01-01
    • 2019-06-26
    相关资源
    最近更新 更多