检索和访问字符串化数据

时间:2018-05-08 06:57:37

标签: postman

我有获取请求,这给我回复如下

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

我将其保存在Tests脚本的环境变量中,如下所示

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

在下一个Post请求中,我试图从预请求脚本中检索上述值,如下所示

var jsonData = JSON.parse(allData)

但是我没有定义错误,如下所示

  

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

我可以在单个变量中设置每个属性,但这样可以正常工作但是会污染环境(因为大约有20个这样的属性)。请建议更好的替代方案。还建议我如何访问Body of the Post请求中的各个值。我可以做下面的事情吗?

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

或者我需要在Pre-request脚本中为单个变量设置值并在Body中使用它们?

由于

1 个答案:

答案 0 :(得分:1)

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

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

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

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}}语法,这些占位符将解析为您设置的值。