我有获取请求,这给我回复如下
{
"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中使用它们?
由于
答案 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}}
语法,这些占位符将解析为您设置的值。