【问题标题】:retrieve and access stringified data检索和访问字符串化数据
【发布时间】:2018-05-08 16:21:00
【问题描述】:

我有 Get 请求,它给了我如下响应

{
"var1": "value1",
"var2": "value2"
}

我将它保存在测试脚本中的环境变量中,如下所示

postman.setEnvironmentVariable("allData", JSON.stringify(responseBody));

在下一个 Post 请求中,我正在尝试从 Pre-request 脚本中检索上述值,如下所示

var jsonData = JSON.parse(allData)

但是我得到如下未定义的错误

评估预请求脚本时出错: ReferenceError: allData 未定义

我可以将每个属性设置在一个单独的变量中,效果很好,但会污染环境(因为大约有 20 个这样的属性)。请建议更好的替代品。还建议我如何访问帖子请求正文中的各个值。我可以执行以下操作吗?

{
  "var1": "{{jsonData.var1}}",
  "var2": "{{jsonData.var2}}"
}

或者我需要在预请求脚本中为单个变量设置值并在正文中使用它们?

谢谢

【问题讨论】:

标签: postman


【解决方案1】:

如果需要从保存的变量中检索数据作为整个数据集,则需要在声明变量时对其进行引用:

var jsonData = JSON.parse(pm.environment.get("allData"))

如果您希望能够在请求正文中使用变量中的单个值,则需要在 Pre-Request Script 中单独解析它们,然后将它们存储为变量以在请求正文中使用:

pm.environment.set("my_single_var_1", JSON.parse(pm.environment.get('allData')).var1)

pm.environment.set("my_single_var_2", JSON.parse(pm.environment.get('allData')).var2)

然后,您可以在此处在请求正文中设置 {{my_single_var_1}} 语法,这些占位符将解析为您设置的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    相关资源
    最近更新 更多