Collection Runner, Newman и запуск в CI
↑ 1.5 Postman: от установки до коллекций · ← Предыдущая · → Следующая
Зачем это аналитику и PM
Пять вкладок, открытых руками, не доказывают, что сценарий проходит целиком. Прогон коллекции идёт по порядку, а Newman повторяет тот же набор в команде сборки, если тесты уже написаны.
План темы
- прогон коллекции целиком
- данные из CSV/JSON
- Newman в командной строке
- отчёты
Объяснение
Collection Runner — прогон папки или всей коллекции, а не одной вкладки. Запросы идут сверху вниз. Тесты каждого шага складываются в общий итог. Подпись кнопки запуска сверьте с вашей версией: действие одно, место на экране переносили.
Как конвейер бланков. Один бланк вы уже заполняли. Конвейер прогоняет пачку и останавливает внимание на тех, где штамп не сошёлся.
Данные и повторы
Файл CSV или JSON даёт несколько строк на один и тот же запрос. Заголовок колонки становится именем переменной на время этой строки. Так проверяют два учебных заказа, не копируя запрос. В файле нет токенов и живых клиентов. JSON для данных прогона — список объектов, не путать с телом одного запроса.
Если шаг зависит от предыдущего, порядок в папке и есть порядок истории. Перемешивание ломает номер, который тест только что записал.
Newman и CI
Newman — та же коллекция из командной строки, без окна клиента. Пример ниже не запускался в этом репозитории: это форма команды, не журнал вашего пайплайна.
Отчёт в консоли показывает, какой тест прошёл. Файлы отчётов других форматов смотрите в документации Newman на день настройки. Имена репортёров здесь не фиксируются: набор менялся.
В CI команда стоит отдельным шагом. Секрет приходит из хранилища сборки, не из файла, который лежит в git. Красный шаг значит «сценарий коллекции не сошёлся», а не «весь продукт запрещён к выкладке», пока команда сама так не договорилась.
Примеры
Учебные строки. Колонка title попадёт в переменную с тем же именем.
title,userId
example,1
second,1Команда-образец. Файлы collection.json и environment.json — экспорт вашей коллекции и окружения, не вложения этой заметки.
newman run collection.json -e environment.jsonНюансы и подводные камни
- Прогон бьёт в адрес активного окружения. Перед стартом читают имя стенда.
- Пустая переменная в строке данных затирает значение окружения на этот круг. Проверьте заголовки колонок.
- Newman не чинит скрипт, который опирается на окно клиента. То, что зелёное у вас, перепроверьте командой на чистой машине.
- Отчёт с телом ответа может содержать персональные данные. Не кладите его в публичный артефакт.
Практика
Соберите папку из учебного GET и POST с тестом кода. Запустите прогон папки один раз без файла и, если клиент просит данные, второй раз с двумя строками CSV.
Ожидаемый результат: итог называет каждый тест, а не только «ок». При двух строках запрос с телом ушёл дважды с разным title. Команда Newman в задаче помечена как образец, пока её не прогнали у себя.
Вопросы с ответами
Зачем Runner, если есть Send?
Send — один запрос. Runner идёт по папке и собирает тесты. Так видно, что второй шаг ещё находит номер, созданный первым.
Что даёт CSV?
Каждая строка — отдельный круг с теми же запросами и новыми значениями колонок. Два учебных заказа не требуют двух копий запроса.
Newman заменяет клиента?
Для прогона сохранённой коллекции в CI — да. Чтобы разбирать новый метод глазами, удобнее окно. Коллекция при этом одна.
Куда девать токен в пайплайне?
В секрет сборки, который подставляется при запуске. Файл окружения в репозитории хранит учебный адрес, не боевой допуск.
Связано с блоком Developer
- 3.1 CI-CD — принципы, пайплайн, стадии, артефакты
- 5.7.2 Контрактные тесты — Pact, проверка proto и GraphQL-схем