Невозможно установить массив в качестве переменной среды - тест Почтальона - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь установить массив в качестве переменной среды в почтальоне. Но он хранит первое значение массива, а не массива.

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);

Как уже упоминалось в комментарии к коду, переменная приходит в виде массива, но когда я снова получаю переменную среды во втором запуске, она не относится к типу массив. Но просто содержит первый элемент в массиве.

Что здесь не так? Как установить массив и использовать его из переменной среды почтальона.

1 Ответ

0 голосов
/ 02 мая 2018

Кажется, что setEnvironmentVariable вызывает toString и устанавливает значение. Используя приведенный ниже код для работы,

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:

В соответствии с ссылкой предлагается использовать JSON.stringify() и JSON.parse() для хранения сложных объектов. Обновление кода соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...