Автоматизированное тестирование – важная часть разработки, но недостаточно просто запускать тесты. Важно предоставлять отчёты в удобном и наглядном формате, чтобы повышать прозрачность процессов и улучшать командную коммуникацию.
Allure Report – это мощный инструмент для визуализации результатов тестирования. С его помощью можно легко анализировать результаты тестов, находить ошибки и следить за метриками.
Мы рассмотрим два популярных инструмента CI/CD:
-
Jenkins – универсальный инструмент, широко применяемый для автоматизации сборок, запуска тестов и создания отчетов.
-
GitLab CI – встроенная система GitLab для непрерывной интеграции и доставки, обеспечивающая автоматизацию процессов сборки и тестирования.
Но отчёты сами по себе малоэффективны, если команда не узнает о результатах вовремя. Чтобы тестирование было действительно полезным, важно оперативно уведомлять участников проекта о его статусе. Один из самых простых и эффективных способов – автоматическая отправка отчетов Allure по электронной почте.
В этой статье мы разберем:
-
как настроить SMTP-сервер для отправки почты в Jenkins.
-
как настроить GitLab Runner;
-
как автоматизировать отправку отчетов после выполнения тестов.
Эти шаги помогут сократить время на анализ тестов и повысить вовлеченность команды в процесс контроля качества.
Статья ориентирована на инженеров по QA, QA Automation и DevOps-специалистов, знакомых с основными принципами CI/CD и использующими такие инструменты, как Docker, Jenkins или GitLab CI.
Описание мини-проекта
Проект демонстрирует базовый процесс автоматизации API-тестирования с использованием популярных инструментов: Java, RestAssured, Docker, Jenkins и Allure Report.
Вы можете получить доступ к проекту по этой ссылке.
Рекомендуется создать форк (Fork) этого репозитория в вашем аккаунте, так как в дальнейшем нам потребуется указать ветку и URL для настройки pipeline.
Основные этапы работы проекта:
-
Запуск API-тестов с помощью библиотеки RestAssured для проверки работы тестового API Swagger Petstore.
-
Изолированное выполнение тестов в Docker-контейнере, управляемом Jenkins.
-
Автоматическая генерация и отправка Allure-отчёта по электронной почте после выполнения тестов.
-
Jenkinsfile настроен для автоматического выполнения всех этапов, его можно найти в директории jenkins проекта.
-
В проекте предусмотрена альтернатива Jenkins в виде файла .gitlab-ci.yml, который позволяет запускать аналогичный пайплайн в GitLab CI.
Требования:
-
Docker и Docker Compose: проект запускается в docker compose, что упрощает настройку окружения и повышает воспроизводимость проекта на всех платформах.
-
Установить Docker compose можно, следуя официальной инструкции.
Запуск Jenkins и настройка плагинов
Открываем терминал и следуем инструкциям ниже:
-
Создаем мостовую сеть в Docker с помощью следующей команды:
docker network create jenkins
-
Для сборки образов docker in docker и jenkins будем использовать docker-compose файл. В терминале необходимо открыть проект и перейти в директорию jenkins (для запуска наших контейнеров используются порты 2376, 8080 и 50000, если они заняты, то необходимо изменить порты на свободные, в файле docker-compose.yml), если с портами нет никаких проблем то, запускаем команду:
docker-compose up -d --build
-
После завершения сборки для настройки Jenkins открываем браузер и переходим по адресу: http://localhost:8080 (или к тому порту, который вы настроили для Jenkins при его установке).
-
Для разблокировки Jenkins, получаем пароль введя в терминале следующую команду:
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
-
После разблокировки Jenkins появляется страница Customize Jenkins. Здесь вы можете установить любое количество полезных плагинов в рамках вашей первоначальной настройки.
Выбираем:
-
Установить рекомендуемые плагины — для установки рекомендуемого набора плагинов, которые основаны на наиболее распространенных вариантах использования.
-
-
После установки всех рекомендуемых плагинов появится страница Create First Admin User (Создать первого пользователя-администратора), укажите данные своего пользователя-администратора в соответствующих полях и нажмите Save and Continue (Сохранить и продолжить).
-
Для установки плагина Allure Report необходимо:
-
Открыть Jenkins перейти во вкладку Manage Jenkins → Plugins → Available plugins.
-
В поисковой строке ввести: allure и установить появившейся плагин кнопкой: Install.
-
Для активации плагина необходимо перейти во вкладку Manage Jenkins → Tools.
-
Найти Allure Commandline installations и кликнуть Add Allure Commandline.
-
В Name указать: allure.
-
Чекбокс Install automatically должна быть активирована и кликаем Apply.
-
-
Для установки Maven необходимо:
-
Открыть Jenkins перейти во вкладку Manage Jenkins → Tools.
-
Найти Maven installations и кликнуть Add Maven.
-
В Name указать: maven.
-
Чекбокс Install automatically должна быть активирована.
-
В Add Installer выбрать: Install from Apache и кликнуть Apply.
-
Инструкция написана на основе руководства пользователя Jenkins.
Подключение SMTP-сервера в Jenkins для отправки почты
В качестве источника электронных писем будем использовать почту Gmail.
-
Необходимо войти в свой аккаунт Google и создать пароль для приложения (пароль показывается 1 раз при его создании, поэтому советую его сохранить, он нам понадобиться дальше).
Пароль для приложения необходим для того, чтобы у приложения Jenkins был доступ к отправке писем через Ваш аккаунт без двухэтапной аутентификации.
Более подробно можно ознакомиться по ссылке. -
Открываем Jenkins, переходим во вкладку Manage Jenkins → System.
Находим пункт заполнения Extended E-mail Notification.
Заполняем поля (согласно документации от Google):-
SMTP server: smtp.gmail.com
-
SMTP port: 465
-
Чекбокс протокола обмена SSL должна быть активирована
-

-
Добавляем наш аккаунт Advanced → Add (кнопка под полем Credentials)
В поле Username заполняем наш логин от почты Gmail.
В поле Password заполняем сгенерированный пароль для приложения (см. пункт 1).

-
В Credentials не забудьте выбрать добавленный аккаунт и сохранить настройки.
Настройка Job’ы в Jenkins
-
Сейчас настроим запуск нашего pipeline с репозитория Git с ветки develop.
-
Открываем Jenkins и переходим на страницу: New Item или Create Job.
-
Вводим имя проекта (на своё усмотрение).
-
Выбираем Select an item type: pipeline.
-
Кликаем Ок.
-
-
Переходим к настройке pipeline:
-
Definition выставляем: Pipeline script
-
В поле script необходимо вставить скрипт с Jenkinsfile, который находиться в директории jenkins нашего проекта.
-
Перед запуском нашего pipeline, необходимо:
-
Указать ветку и URL репозитория (на строке 15):
-
git branch: ‘branch of git repository’, url: ’https git repository url’
-
-
-
(Кавычки обязательны, замените branch и url на свой)
-
Указать email для отправки отчёта (на строке 42) при необходимости отправки почты на несколько адресов, адреса указываются через запятую:
-
to: ‘example1@mail.ru, example2@mail.ru’
-
(Замените ‘example1@mail.ru’ на свой email, кавычки обязательны)
И сохраняем настройки.

Запуск pipeline в Jenkins
-
Теперь мы можем запустить нашу сборку, для этого необходимо перейти в нашу созданную Job’у и нажать Build Now.
После запуска проект должен начать собираться в окне Builds.

-
Для детального осмотра наших stage в сборке, можно перейти в Pipeline Overview.

-
По завершению сборки на указанную почту должно прийти письмо с Allure отчетом, отчет находится в файле index.html, в файле build.log находится лог нашей сборки.
Allure report доступен сразу и не требует никаких дополнительных сборок.
Необходимо будет скачать index.html файл и открыть.

-
Allure отчет

Настройка GitLab Runner
-
Если Ваш проект в GitHub, то необходимо его перенести в репозиторий GitLab по инструкции.
-
В GitLab открываем проект и переходим в Settings → CI/CD → Runners и кликаем на New project runner.
-
Заполняем поле Tags, активируем чекбокс Run untagged jobs и кликаем Create runner.

-
На странице необходимо сохранить полученный токен для регистрации нашего runner’a.

-
Открываем терминал и создаем volume Docker:
docker volume create gitlab-runner-config
-
Запускаем регистрацию GitLab Runner’a, вместо “$RUNNER_TOKEN” необходимо подставить runner authentication token полученный при создании runner’a (кавычки обязательны):
Для Linux/Mac:
docker run --rm -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner register \ --non-interactive \ --url "https://gitlab.com/" \ --token "$RUNNER_TOKEN" \ --executor "docker" \ --docker-image alpine:latest \ --description "docker-runner"
Для Windows:
docker run --rm -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner register ` --non-interactive ` --url "https://gitlab.com/" ` --token "$RUNNER_TOKEN" ` --executor "docker" ` --docker-image alpine:latest ` --description "docker-runner"
При успешной регистрации GitLab Runner’a в терминале должна появиться надпись: Runner registered successfully.
Конфигурация GitLab Runner’a сохраняется в volume gitlab-runner-config.
Более подробная инструкция регистрации Gitlab Runner’a описана в официальной документации.
-
Запускаем контейнер с уже зарегистрированным GitLab Runner’ом.
Для Linux/Mac:
docker run -d --name gitlab-runner --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v gitlab-runner-config:/etc/gitlab-runner \ gitlab/gitlab-runner:latest
Для Windows:
docker run -d --name gitlab-runner --restart always ` -v /var/run/docker.sock:/var/run/docker.sock ` -v gitlab-runner-config:/etc/gitlab-runner ` gitlab/gitlab-runner:latest
-
После запуска на странице должно отобразиться, что runner зарегистрирован.

-
Настраиваем переменные окружения проекта, в GitLab переходим Settings → CI/CD → Variables и кликаем Add variable.
|
Key |
Value |
|
SMTP_SERVER |
|
|
SMTP_PORT |
465 |
|
SMTP_USER |
Логин от почты Gmail |
|
SMTP_PASS |
Сгенерированный пароль для приложения (см. Подключение SMTP-сервера в Jenkins для отправки почты) |
|
RECIPIENT_ADDRESS |
Почта куда будем отправлять отчет (Если письмо необходимо отправлять на несколько адресов, то укажите адреса через пробел) |
-
Обратите внимание на чекбоксы Visibility и Flags.


Запуск pipeline в Gitlab CI
-
В GitLab открываем проект и переходим Build → Pipeline schedules и кликаем Create a new pipeline schedule.
-
Заполняем поля:
-
Description (на своё усмотрение);
-
Cron timezone;
-
Interval Pattern (запланированное время запуска pipeline “0 0 * * *” — запускать один раз в день в полночь);
-
Select target branch or tag (ветка для запуска);
-

-
Кликаем Create pipeline schedule.

-
Для запуска pipeline кликаем по кнопке со стрелкой.

-
Переходим в Build → Pipelines и видим, что началась сборка.
Для более детального просмотра stages кликните по Running.


-
По завершению stage: send_allure_report на указанную почту должно прийти письмо с Allure отчетом, отчет находится в файле index.html.
Allure report доступен сразу и не требует никаких дополнительных сборок.
Необходимо будет скачать index.html файл и открыть.

-
Allure отчет:

-
Для отправки письма с отчетом allure в GitLab CI используется команда curl.
Команда запускается через скрипт, который находится в проекте в файле:-
email_message.sh
-
Заключение
В этой статье мы рассмотрели процесс настройки автоматической отправки отчетов Allure через Jenkins и GitLab CI. Такая интеграция позволяет упростить анализ результатов тестирования и повысить прозрачность процессов контроля качества.
Автоматическая отправка отчетов по электронной почте обеспечивает:
-
Мгновенный доступ к результатам тестов после их выполнения, что позволяет оперативно выявлять ошибки.
-
Автоматизацию рутинных задач, снижая затраты времени на анализ и распространение отчетов.
-
Повышение вовлеченности команды, так как все участники проекта получают актуальную информацию о состоянии тестирования.
Автоматизация отчетности не только экономит время, но и способствует повышению качества продукта, обеспечивая своевременную обратную связь и контроль за стабильностью тестируемой системы.
Спасибо за внимание!
Больше авторских материалов для SDET-специалистов от моих коллег читайте в соцсетях SimbirSoft – ВКонтакте и Telegram.
ссылка на оригинал статьи https://habr.com/ru/articles/941730/
Добавить комментарий