#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 /… )