我试图在postman中将数组设置为环境变量。但它存储数组的第一个值而不是数组。
var aDataEntry = postman.getEnvironmentVariable('data_set_entries');
if(aDataEntry == null)
{
aDataEntry = [];
}
var jsonData = JSON.parse(responseBody);
aDataEntry.push(jsonData.dataEntry.id);
// a console.log here confirms that aDataEntry is an array
postman.setEnvironmentVariable('data_entry',aDataEntry);
正如代码注释中所提到的,变量是以数组形式出现的,但是当我再次在第二次运行中获取环境变量时,它不是数组类型。但只包含数组中的第一个元素。
这里有什么问题?如何设置数组并从postman环境变量中使用它。
答案 0 :(得分:3)
好像setEnvironmentVariable
调用toString
并设置值。使用以下代码工作 - aorund,
var aDataEntry = postman.getEnvironmentVariable('data_set_entries');
if(aDataEntry == null)
{
aDataEntry = [];
}
else
{
aDataEntry = JSON.parse(aDataEntry);
}
var jsonData = JSON.parse(responseBody);
aDataEntry.push(jsonData.dataEntry.id);
// a console.log here confirms that aDataEntry is an array
postman.setEnvironmentVariable('data_entry',JSON.stringify(aDataEntry));
对于我的用例,数组中的值很简单,其中没有任何,
。所以上面的解决方案适合我。
修改1:
经过reference后,建议使用JSON.stringify()
和JSON.parse()
来存储复杂对象。相应地更新代码。