无法将数组设置为环境变量 - Postman test

时间:2018-05-02 08:09:37

标签: postman

我试图在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环境变量中使用它。

1 个答案:

答案 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()来存储复杂对象。相应地更新代码。