Множество способов запустить коллекции Postman |
21.01.2025 00:00 |
Автор: Сватика Визань (Swathika Visagn) Большинство тестировщиков в курсе, что Postman – один из самых популярных инструментов тестирования API. Я пользовалась им больше, нежели иными аналогичными инструментами, и просто без ума от его интерфейса. По моему опыту, наиболее популярные возможности Postman – это предварительные скрипты, методы авторизации, интеграция библиотеки Faker для случайных тестовых данных, и та, которую я намерена изучить и исследовать – Flows. В этой статье я перечислю и опишу различные способы запуска тестов из коллекций Postman. Я изучала этот вопрос для близкого друга, начинающего тестировщика, который очень хотел разобраться с Postman. Я решила поделиться этой информаций со всем сообществом! Метод запуска тестов надо выбирать в зависимости от нужд вашего проекта. Изучая нечто новое, мы всегда начинаем с простого, а затем усложняем. Такой подход обеспечивает нам доскональное понимание происходящего – это как следовать рецепту, готовя еду! Наверняка существуют методы запуска тестов, которые я упустила. Но я решила покрыть конечный набор сценариев, потому что они основаны на том, что Postman предлагает из коробки, не нуждаясь во внешних интеграциях. Способы запустить коллекции Postman:
Способ 1: ручной запуск коллекции из Collection RunnerНикогда нельзя недооценивать сложность задачи по тестированию. Поэтому рекомендуется вначале прогнать новую или изменившуюся коллекцию Postman вручную, чтобы понять, насколько тесты стабильны. По умолчанию тесты в коллекции или папке прогоняются последовательно. Но их также можно запускать в иных последовательностях, перетаскивая запросы внутри окна Collection runner. Порядок тестов можно менять и при прогоне через Postman CLI, как мы увидим далее. Интересный факт: метод postman.setNextRequest() во вкладке Test может повлиять на порядок тестов в прогоне через Collection Runner. Коллекции позволяют удобно сгруппировать запросы по типу, функциональности или сценарию. Их также можно использовать для покрытия end-to-end сценария. Запускать коллекции API-тестов из Postman можно, выбрав Run collection из меню коллекции. В окне Test Runner можно выбрать настройки конфигурации - Run manually (ручной запуск), Schedule runs (запуск по расписанию), или Automate runs via CLI (автоматизация запуска через интерфейс командной строки). Для начала выберем Run manually, а затем нажмем кнопку Run, чтобы запустить коллекцию. Классная альтернатива – выбрать меню Runner в нижней части интерфейса Postman и перетащить коллекцию, которую нужно запустить, в окно Test Runner! Результаты и отчетыPostman не генерирует HTML-отчеты, интегрировать плагины, генерирующие такие отчеты, с его графическим интерфейсом тоже нельзя. Но результаты тестов отображаются в понятной форме, и там есть вся необходимая для изучения проблем при падениях информация. Можно дописать свой код, чтобы запрос и ответ попадали в результаты, но я все же думаю, что Postman-у стоит добавить тут новые возможности, чтобы отчеты можно было легко получать. Окно Run results детально раскрывает каждый тест: тело запроса, заголовки, тело ответа. С другой стороны, я небольшая поклонница опции Export Results (экспорт результатов) в Postman. Там лишь указывается, прошел тест или упал, хотя детализацию можно выгрузить в JSON.
Test Summary – обзор результатов теста без особых подробностей.
Способ 2: настроить расписание прогонов коллекций и получать уведомления о результатахОпция расписания в Postman крайне полезна, если команда решила поддерживать устойчивый и постоянно растущий регрессионный набор в Postman, но еще не пользуется CI/CD. Для этого может быть множество веских причин. В одном из моих проектов мы были на очень ранней стадии разработки, и в каждом спринте итеративно разрабатывалось несколько API. Поэтому мне нужно было поддерживать растущий API-набор, помогающий регулярно прогонять тесты, не прилагая чрезмерных усилий с CI/CD. При прогоне тестов по расписанию на почту придет уведомление, если произошли падения, и можно настроить прогон как угодно. Здорово, правда? Выбрав коллекцию для запуска, используйте Collection Runner для настройки расписания и частоты прогона, к примеру, с понедельника по пятницу в 8 утра. Как-то раз мне здорово помогла настройка частоты прогона – к утреннему скрам-созвону у меня был на руках готовый отчет. Вы тоже можете выбрать частоту, которая лучше соответствует ожиданиям ваших заинтересованных лиц. Скажем, можно указать день ревью спринта, чтобы иметь возможность поделиться информацией о здоровье API. Более того, Advanced Settings в настройках расписания позволяют задавать задержки между запросами и пробовать повторно, если прогон упал. Это будет полезным для многих тестировщиков. Когда расписание настроено, его можно увидеть во вкладке Runs на странице информации о коллекции. Если нажать кнопку View, можно увидеть результаты конкретного прогона или запустить коллекцию вручную. Давайте проверим, пришло ли мне письмо (в случае падений), и посмотрим на результаты на странице Schedule. Результаты гласят, что API здоровы, а также сообщают о времени ответа. Интересный факт: для настройки расписания и отслеживания URL-эндпойнты должны быть публично доступными. Эндпойнты на localhost использовать нельзя. Способ 3: отслеживание коллекции в PostmanВыше мы настроили запуск коллекции по расписанию и просмотрели результаты в интерфейсе Schedule. Возможно, у вас появился вопрос, что значит отслеживание, и чем оно отличается от настройки расписания? Разница проста – настройка запуска по расписанию позволяет запускать коллекцию в определенное время в выбранные дни. Отслеживание же помогает автоматически запускать коллекции не только в особые дни и часы, но и с гранулярными конфигурациями – например, регулярными интервалами в минутах или часах. Эти настройки помогают оценить производительность API. Выберите Monitors на левой панели рабочего пространства и нажмите Create Monitor. Конфигурация мониторов очень похожа на настройку расписаний. Дайте монитору имя и выберите коллекцию, регион и уведомления на почту. Тут также можно задать расширенные настройки – например, задержку. Примечание: при использовании мониторов нельзя наследовать глобальные переменные – вместо этого надо передавать локальную. В этом примере я выбрала частоту прогона «Каждый час». Посмотрим на результаты. Несколько прогонов упали – упавшие тесты показали, что время ответа в одном из запросов превышает ожидаемое. Это может указывать на отклонения в поведении конечных точек API. С результатами в руках можно плодотворно обсудить ситуацию с разработчиками, и проблемы будут устранены на ранних стадиях. Это отличный пример принципов сдвига влево. Интересный факт: Мониторы могут интегрироваться и передавать результаты в ряд приложений, включая канал Slack. Вам не придется все время заглядывать в интерфейс Postman. Способ 4: ручной запуск тестов из командной строки с использованием Postman CLIPostman CLI (интерфейс командной строки) позволяет запускать любую коллекцию через командную строку. Очень удобно для решений CI/CD. В окне Collection Runner выберите Automate Runs via Postman CLI. Теперь вы сможете загрузить Postman CLI через cURL. Загрузив CLI на Mac с чипом Apple, вы получите результаты на изображении ниже. Сверьтесь с инструкциями по установке Postman CLI для других устройств. В Collection Runner сгенерируйте ключ API и скопируйте команду, чтобы запустить коллекцию из командной строки. Примечание: Храните ключ API в безопасном месте. Не кодируйте его жестко. Результат будет выглядеть, как на изображении ниже. Интересный факт: Postman CLI может также запускать локально экспортированные коллекции. Однако они потеряют связь с родительской коллекцией в интерфейсе. Для изменения порядка запуска есть ряд различных CLI-флагов. Способ 5: ручной запуск коллекций при помощи Newman, и красивые HTML-отчетыNewman – это инструмент запуска коллекций из командной строки с открытым исходным кодом. Он позволяет запускать коллекции Postman в CI / CD. Выбирайте между Postman CLI и Newman, руководствуясь нуждами проекта. Лично я предпочитаю Newman, так как там есть плагин HTML Reporter, создающий внушительную HTML-отчетность. Такой отчет можно генерировать для каждой коллекции, и это отличный способ продемонстрировать результаты тестирования API заинтересованным лицам. Разберемся с этим подробнее. Скачайте Newman на свое устройство при помощи команды: npm install -g newman Экспортируйте коллекцию из Postman. Экспортировать также нужно любые переменные окружений. В Newman установите плагин newman-reporter-htmlextra - npm. Давайте посмотрим, как прогнать коллекцию Postman Demo и посмотреть результаты. Как уже говорилось выше, начните с экспорта коллекции и связанных с ней переменных окружения. Сохраните экспортированные файлы в папку. Помните, что Newman нужно запускать из того же расположения, где находится коллекция Postman. newman run collectionName.json -r htmlextra Если все правильно сделано, в папке с коллекцией появится папка newman. В этой папке будет симпатичный интерактивный отчет: Этот отчет можно генерировать через Newman в CI/CD, но я приберегу это для другой статьи, посвященной именно Newman и его отчетности. Сейчас поговорим о Postman CLI и GitHub Actions для CI/CD. Способ 6: запуск коллекций при помощи Postman CLI и GitHub ActionsЕсли ваша компания пользуется CI/CD, вам не нужно говорить об их преимуществах. Вы, возможно, также заметили, как CI/CD помогают инженеру качества эффективнее работать в гибком окружении. При настройке пайплайна при помощи GitHub Actions тесты сработают при любой желаемой конфигурации для нужной ветки. Настройка дает итеративную обратную связь о тестах каждого спринта и улучшает их прозрачность. Это особенно полезно, когда тесты находятся в том же репозитории, что и код продукта: это помогает убедиться, что баги не заедут в мастер-ветку. Тестировщику не помешает погрузиться в CI/CD и научиться запускать тесты в пайплайне. Postman очень дружелюбно интегрируется с CI/CD разных поставщиков, но в этой статье я ограничусь GitHub Actions. Давайте разберемся, как запускать коллекции в GitHub Actions, используя Postman CLI. Есть разные способы этого добиться. В этом разделе мы увидим, как сохранить коллекцию Postman в GitHub и настроить пайплайн в GitHub Actions. Интеграция Postman с GitHubПерейдите на домашний экран интерфейса Postman и выберите Integrations. Выберите GitHub. Примечание: В GitHub два типа токенов доступа: классический и точный. Классический токен дает доступ ко всем репозиториям этого профиля, а точный дает возможность выбирать, к каким репозиториям предоставить доступ. Грубо говоря, при классическом токене пользователь сможет увидеть все репозитории из списка, а при точном – только выбранные для этого токена. В окне ниже вы выбираете имя для интеграции, чтобы позднее на нее можно было легко сослаться. Затем выберите рабочую область и коллекцию. И, наконец, выберите репозиторий из списка GitHub. И все! Наша интеграция Demo_Postman_GitHubActions добавлена. Результат интеграции можно проверить, взглянув на репозиторий. В нем должна появиться ваша папка и коллекция. Теперь любые изменения в коллекции внутри Postman будут загружаться автоматически. Отличный способ для резервного копирования вашей коллекции. После этого проверьте копию, изменив свои тесты, а затем взглянув, есть ли в репозитории новый коммит. Я добавила в проверку Postman дополнительную строку, и могу удостовериться, что в GitHub-репозитории она тоже изменилась. Интеграция Postman с GitHub ActionsТеперь, когда мы синхронизировали коллекцию Postman с GitHub, мы можем добавить эти тесты в GitHub Actions. Когда мы это сделаем, коллекция будет запускаться в пайплайне каждый раз, когда в желаемую ветку поступит пуш. В Collection Runner выберите Postman CLI, а затем Configure CI / CD. 1. Выберите GitHub Actions и сгенерируйте API-ключ. Ключ, сгенерированный в Postman, можно хранить в секретах репозитория GitHub и передавать при запуске, а не кодировать его намертво в скрипте запуска. 2. Скопируйте конфигурационный файл для GitHub Actions и добавьте его, как yaml-файл для действия в репозитории GitHub. Автоматически сгенерированный шаблонный yaml-файл показан ниже. Этот код нужно скопировать и вставить в yaml-файл в папке .github/workflows. 3. Теперь, когда пайплайн настроен, мы можем кастомизировать его файл в соответствии с нуждами продукта. К примеру, можно добавить шаги генерации отчетов и загрузки артефактов в папку репозитория. Но это более продвинутая тема, которую я, возможно, освещу в другой статье. Конфигурация запустилась, и результаты можно посмотреть во вкладке Actions репозитория. Прогоны также можно увидеть во вкладке Runs коллекции. Можно также воспользоваться синтаксисом GitHub Actions, чтобы тонко настроить прогон, задавая ему различные конфигурации. К примеру, можно установить количество итераций. Примечание: помните – храните секретную информацию вроде API-ключа Postman в секретах репозитория GitHub. ЗаключениеНадеюсь, вам понравился аттракцион «Запусти коллекцию Postman всеми способами, от базового до продвинутого». |