Почтальон - выполнить первый запрос для первой итерации только с несколькими запросами * несколько итераций - PullRequest
1 голос
/ 16 января 2020

Я получаю коллекцию почтальона, содержащую запрос A, B, C. Когда я запускаю несколько итераций (например, 3 итерации), я должен убедиться, что запрос A выполняется только для первой итерации, а запрос B & C выполняется для каждой итерации, например:

iteration # 0 - запрос A

итерация # 0 - запрос B

итерация # 0 - запрос C

итерация # 1 - запрос B

итерация # 1 - запрос C

итерация # 2 - запрос B

итерация # 2 - запрос C

Я пытался postman.setNextRequest () в предварительном запросе запрос A, но он не может пропустить себя, и он вступает в силу только для следующего запроса.

Я считаю, что этот сценарий очень распространен, и типичным примером является то, что запрос A генерирует код токена с длительным сроком службы, который будет использоваться следующие запросы / итерации.

У кого-нибудь есть идея? Оценил!

Ответы [ 2 ]

2 голосов
/ 16 января 2020

Вы можете попробовать приведенное ниже решение, чтобы увидеть, решит ли это вашу проблему.

  • Создайте этот токен длинной жизни или все, что вы хотите сделать один раз в скрипте preRequest запроса B, и сохраните этот маркер длинной жизни в переменные окружения или вообще вы можете просто поставить флаг в переменные окружения, скажем request_A_ran_already. Пусть этот код находится в условии if, которое проверяет среду, если токен долгой жизни уже создан, если да, этот поток будет пропущен. Не забудьте сохранить этот маркер долгой жизни в переменных окружения / глобальных переменных. Вам нужно будет сохранить его, если вы хотите выполнить операции на его основе позже.

Дайте мне знать, если это работает для вас, прокомментируйте, если у вас есть какие-либо сомнения по этому поводу.

0 голосов
/ 17 января 2020
  1. удалить запрос A из коллекции

  2. добавить этот раздел в предварительный запрос запроса B

    if (pm.info.iteration = == 0) {pm.sendRequest ({url: 'https://url', метод: 'POST', заголовок: {'Content-Type': 'application / json',}, body : {mode: 'raw', raw: JSON .stringify ({"a": "a_value"})}}, function (err, res) {postman.setEnvironmentVariable ("mytoken", res. json ( ) .token);}); }

...