Почтальон: Получить данные из файла JSON в сценарии предварительного запроса - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь найти способ использовать данные из моего файла .json в сценарии предварительного запроса в Postman. Как вы можете видеть из кода ниже, я использую цикл для моего запроса. В моем сценарии перед запросом я хотел бы использовать "id_group": "14803,14805" из моего файла Data.json вместо id_group = ["14803", "14805"]; .

Спасибо

URL:

.../group/{{id_of_group}}/members

Тело:

    {
     "id_user": {{id_user}}
    }

Сценарий предварительного запроса:

var id_group = pm.environment.get("id_group");

if (!id_group) {
    id_group = ["14803","14805"];
}   

var currentIdGroup = id_group.shift();
pm.environment.set("id_of_group", currentIdGroup);
pm.environment.set("id_group", id_group);

Тесты:

var id_group = pm.environment.get("id_group");
console.log(id_group);
if (id_group && id_group.length > 0) {
   postman.setNextRequest('Add user to groups');
} else {
   postman.setNextRequest();
}

Файл Data.json:

[{
 "id_user":47091,
 "id_group":"14803,14805"
}]

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Вы создаете объект-массив. Но pm.environment.set() хранит только строки. Вы должны преобразовать их в строки с JSON.stringify().

Вместо pm.environment.set("id_of_group", currentIdGroup); я бы предложил

pm.environment.set("id_of_group", JSON.stringify(currentIdGroup));

И обратно то же самое. Если вы загружаете из env vars, вам нужно проанализировать ваши строковые объекты: JSON.parse(pm.environment.get("id_group"));

0 голосов
/ 13 июня 2019

Я только что нашел ответ.В скрипте предварительного запроса я использую переменную id_group, эта переменная используется для получения идентификаторов, которые будут использоваться в цикле.

Я нашел pm.iterationData.get (); , он возьмет данные из файла JSON.Вместо id_group = ["14803", "14805"]; Я использую pm.iterationData ("id_group") .

Мой сценарий предварительного запроса выглядит следующим образомсейчас:

var id_group = pm.environment.get("id_group");   

    if (!id_group) {
        id_group = pm.iterationData.get("id_group");
    } 

    var currentIdGroup = id_group.shift();
    pm.environment.set("id_of_group", currentIdGroup);
    pm.environment.set("id_group", id_group);

И я немного обманываю, мой JSON теперь выглядит так:

[{
 "id_user":47091,
 "id_group":["14803","14805"]
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...