Найти тему

Тестирование в Postman. Как запустить тесты через контейнер Docker с использованием Newman. Часть 15

Оглавление

Мы с вами уже научились эффективно использовать Postman и даже освоили написание автоматизированных тестов, включая детальное создание скриптов до и после теста. Однако, чтобы эффективно интегрировать эти тесты в процесс непрерывной интеграции (CI), необходимо научиться запускать их удалённо. Именно об этом и пойдёт речь в нашей сегодняшней статье — мы рассмотрим запуск тестов через контейнер в Docker.

В этой статье я не буду касаться установки и использования Docker. Этому будет посвящён отдельный курс. Если говорить кратко, Docker позволяет нам создать изолированную среду («контейнер»), в которой можно запустить определённую программу или операционную систему. Например, можно запустить Python, не устанавливая его на свой компьютер.

Docker. Модуль 4 | Обучение тестированию | Дзен

То же самое можно сделать и с тестами: мы создадим контейнер, в котором они будут выполняться, а мы получим только результаты. Поскольку контейнеры используются на серверах и агентах проекта, ресурсы вашего компьютера задействованы не будут. Это очень удобно!

В этой статье я расскажу о последовательности действий, необходимых для запуска тестов в контейнере Docker, не вдаваясь в подробности установки и использования Docker.

Использование Docker локально

Для начала вам нужно установить образ в ваш Docker. Вы можете использовать тот, который больше подойдёт именно вам. Перейдя на страницу - https://hub.docker.com/

Я же буду использовать - ventx/newman-reporter. Так как в нём уже есть установленный отчёт --reporters htmlextra

Откроем нашу командную строку и пропишем

docker pull ventx/newman-reporter

Произойдёт установка выбранного образа

-2

Можете перейти в сам Docker и убедиться, что образ установился

-3

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

newman run https://api.postman.com/collections/14548453-df841372-4131-42a1-9884-ff45954e298a?access_key=PMAT-01H21BHXSV6P93H93JRD62Q98X --environment env.json --insecure --reporters cli,htmlextra --reporter-htmlextra-export "new_report.html"

Но, из этой же статьи помним, что лучше запускать с переменными окружения. Поэтому перейдём на рабочий стол, где лежит наш файл env

-4

Запуск тестов Newman через Docker

Логика следующая:

  • Запускаем контейнер
  • Копируем наш файл с переменными окружения в контейнер
  • Далее точно такой же запуск, как и без Docker
docker run –-rm -v %cd%:/etc/newman/ ventx/newman-reporter run https://api.postman.com/collections/14548453-df841372-4131-42a1-9884-ff45954e298a?access_key=PMAT-01H21BHXSV6P93H93JRD62Q98X --environment env.json --insecure --reporters cli,htmlextra --reporter-htmlextra-export "new_report.html"

–-rm - удаление контейнера после его запуска. Он нам по факту не нужен.

-v %cd%:/etc/newman/ - %cd% это указание, что мы будем использовать файл в текущей директории. /etc/newman/ - куда клонировать текущую дерикторию

ventx/newman-reporter - название образа, который хотим запустить

Остальные команды вы уже знаете из предыдущих статей. Запустили - тесты прошли успешно

-5

Мы также сформировали отчет по тестам

-6

Можем проверить запущенные контейнеры. Их не будет - так как мы его сразу удаляем

-7

Запустим наши тесты через файл, а не через ссылку. теперь не будем удалять контейнер, чтобы наглядно посмотреть, что в нём находится. Команда следующая

docker run -v %cd%:/etc/newman/ ventx/newman-reporter run dzen.json --environment env.json --insecure --reporters cli,htmlextra --reporter-htmlextra-export "new_report.html"

Напомню, файлы находятся как раз из той директории, которая указана в командной строке, то есть на рабочем столе (Desktop)

Тесты прошли также успешно

-8

Можем перейти в наш контейнер и посмотреть на структуру

-9
-10

Вы можете сохранить себе коллекцию по данному разделу - https://api.postman.com/collections/14548453-df841372-4131-42a1-9884-ff45954e298a?access_key=PMAT-01H21BHXSV6P93H93JRD62Q98X

Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!

Обучение тестированию