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

无法将数组设置为环境变量-Postman测试,postman,Postman,我试图在postman中将数组设置为环境变量。 但它存储数组的第一个值,而不是数组 var aDataEntry = postman.pm.environment.get('data_set_entries'); if(aDataEntry == null) { aDataEntry = []; } var jsonData = pm.response.json(); aDataEntry.push(jsonData.dataEntry.id); // a console.log he

我试图在postman中将数组设置为环境变量。 但它存储数组的第一个值,而不是数组

var aDataEntry = postman.pm.environment.get('data_set_entries');
if(aDataEntry == null) {
    aDataEntry = [];
}
var jsonData = pm.response.json();
aDataEntry.push(jsonData.dataEntry.id);

// a console.log here confirms that aDataEntry is an array

postman.pm.environment.set('data_entry',aDataEntry);
正如代码注释中提到的,变量是以数组的形式出现的, 但是,当我在第二次运行中再次获得环境变量时,它不是 类型为数组。但只包含数组中的第一个元素

var aDataEntry = postman.pm.environment.get('data_set_entries');
if(aDataEntry == null) {
    aDataEntry = [];
}
var jsonData = pm.response.json();
aDataEntry.push(jsonData.dataEntry.id);

// a console.log here confirms that aDataEntry is an array

postman.pm.environment.set('data_entry',aDataEntry);
这里怎么了?
如何从postman环境变量设置数组并使用它。

它看起来像是
pm.environment.set
调用
toString
并设置值。 使用下面的代码来运行

var aDataEntry = pm.environment.get('data_set_entries');
if(aDataEntry == null) {
    aDataEntry = [];
} else {
   aDataEntry = JSON.parse(aDataEntry);
}
var jsonData = pm.response.json();
aDataEntry.push(jsonData.dataEntry.id);

// a console.log here confirms that aDataEntry is an array

pm.environment.set('data_entry',JSON.stringify(aDataEntry));
对于我的用例,数组中的值很简单,没有任何
。 所以以上的工作方法对我来说很有效

编辑1:

如前所述,建议使用
JSON.stringify()

JSON.parse()
用于存储复杂对象。相应地更新代码。

Postman将所有集合/全局/环境变量存储为字符串,除非在设置环境变量时将值包装为类似于
JSON.stringify()
。这是否回答了您的问题?我会用更新的语法替换诸如
JSON.parse(responseBody)
postman.getEnvironmentVariable
postman.setEnvironmentVariable
之类的内容
pm.response.json()
pm.environment.get()
pm.environment.set()
-旧的东西很快就会开始贬值。
json.parse(aDataEntry)
只有在保存
data\u set\u entries
环境变量时使用
json.stringify(),类似这样:
pm.environment.set('data\u set\u entries',JSON.stringify(dataSetEntries))
-对吗?