В коллекции Postman одну из служб нужно вызвать только один раз

#postman #postman-collection-runner #postman-pre-request-script

#почтальон #postman-collection-runner #postman-pre-request-script

Вопрос:

Я разрабатываю довольно простую коллекцию с двумя службами в коллекции:

  • Запрос # 1: получить службу токенов
  • Запрос № 2: служба для получения подробной информации (требуется токен из предыдущей службы)

Мне удалось получить токен из службы № 1 и установить его в переменную, а затем использовать указанный токен в запросе № 2. Затем я использую csv-файл в Runner для вызова службы # 2 с использованием разных аргументов.

Чего я пытаюсь добиться, так это запустить службу # 1 только один раз, вместо того, чтобы запускать столько раз, сколько строк в CSV. Возможно ли это?

Ответ №1:

Вы можете использовать postman.setNextRequest("request #2"); в тестовом скрипте запроса № 2, чтобы пропустить выполнение запроса № 1 после первого запуска.

Но вам также нужно добавить условие, чтобы делать это только в то время, когда pm.info.iteration меньше вашего количества требуемых выполнений, чтобы избежать бесконечного цикла.

Комментарии:

1. Я не знал о номере pm.info.iteration. Я успешно получил к ней доступ и распечатал в журнале, написал оператор if с setNextRequest, но запрос # 1 все еще вызывается. var iteration = pm.info.iteration if(итерация > 0 ){ console.log(«пропуск запроса токена») postman.setNextRequest(«Request2»); } else { console.log(«Первый запуск: получение токена») }

2. Я не знал о «postman.setNextRequest() всегда выполняется в конце текущего запроса. Это означает, что если вы поместите эту функцию перед другими блоками кода в любом месте предварительного запроса или тестового сценария, эти блоки все равно будут выполняться.» Я соответствующим образом отредактировал свой ответ. (См. learning.postman.com/docs/running-collections /… )