AllureReport интеграция

Интеграция Allure Report в тестовые проекты на WebdriverIO предоставляет детализированную аналитику и удобное представление результатов тестов. Поддерживается отображение шагов, статусов, вложений, метаданных и истории прогонов, что делает Allure одним из самых практичных репортинговых решений в экосистеме WebdriverIO.


Базовая интеграция включает два компонента: адаптер для WebdriverIO и пакет для генерации отчётов. Через npm устанавливаются:

npm install --save-dev @wdio/allure-reporter allure-commandline

Пакет @wdio/allure-reporter регистрируется в конфигурации WebdriverIO и формирует промежуточные данные о прохождении тестов. Пакет allure-commandline отвечает за финальную сборку отчёта в HTML.

Требования к версии WebdriverIO и Allure должны соотноситься. Для WebdriverIO v7+ применяется вторая версия Allure Adapter, что позволяет использовать вложения, шаги и метаданные.


Конфигурация в wdio.conf.js

В разделе reporters конфигурационного файла добавляется запись:

reporters: [
   ['allure', {
      outputDir: 'allure-results',
      disableWebdriverStepsReporting: false,
      disableWebdriverScreenshotsReporting: false
   }]
]

Ключевые параметры:

  • outputDir — каталог с сырыми результатами тестов.
  • disableWebdriverStepsReporting — отключение автоматической записи шагов от WebDriver команд.
  • disableWebdriverScreenshotsReporting — отключение прикрепления скриншотов.

При необходимости задаются дополнительные настройки, включая присвоение ID истории или включение меток.


Генерация HTML-отчёта

После завершения прогона формируются файлы в каталоге allure-results. Для сборки HTML-отчёта используется команда:

npx allure generate allure-results --clean
npx allure open

Команда generate создаёт HTML-структуру отчёта, а open запускает локальный сервер для просмотра.


Документирование шагов теста

Allure позволяет фиксировать действия теста в виде шагов. Для этого в коде используются методы Allure Reporter:

import allure from '@wdio/allure-reporter';

allure.startStep('Авторизация пользователя');
// тестовые шаги
allure.endStep();

При этом применяют автоматическую запись шагов WebDriver, что часто позволяет отказаться от ручного описания.


Метки, ссылки, эпики и функции

Allure поддерживает структуру требований через метки:

allure.addFeature('Авторизация');
allure.addStory('Успешный вход');
allure.addSeverity('critical');

Также добавляются ссылки на дефекты или задачи:

allure.addIssue('AUTH-235');
allure.addTestId('TEST-102');

Метаданные определяют связь тестов с бизнес-процессами и системами управления разработкой.


Вложения и доказательная база

Allure позволяет прикреплять:

  • скриншоты
  • логи
  • HAR-файлы
  • JSON-ответы API
  • видео записей тестов (через сторонние плагины)

Пример добавления вложения:

allure.addAttachment('response.json', JSON.stringify(responseBody), 'application/json');

Для UI-тестов наиболее распространено автоматическое прикрепление скриншотов на падениях тестов, что включено в WebdriverIO по умолчанию.


Использование wdio-allure-service и расширенные возможности

Сервис WebdriverIO предоставляет интеграцию с:

  • историями тестов
  • flaky-механикой
  • статусами retries
  • окружением и системной информацией

В конфигурации допускается настройка повторов тестов, что отражается в отчёте отдельными блоками.


История тестов и анализ стабильности

История хранится в каталоге allure-history рядом с результатами. При повторных прогонах формируется:

  • тренд стабильности
  • время прохождения
  • частота падений
  • распределение по статусам

Эта информация особенно полезна при CI-интеграции, где отчёты доступны для анализа после каждого прогона.


Интеграция с CI/CD

Allure Report часто подключают к:

  • Jenkins
  • GitLab CI
  • GitHub Actions
  • TeamCity
  • Bamboo

В большинстве случаев требуется:

  • хранить allure-results как build artifact
  • генерировать отчёт в post-job стадии
  • публиковать HTML как артефакт или в статический сервер

Jenkins имеет готовый плагин Allure, упрощающий просмотр и историю прогона.


Работа с вложениями из API-тестов

Хотя WebdriverIO ориентирован на UI-тестирование, Allure корректно отображает вложения результатом HTTP-запросов:

  • тела запроса и ответа
  • время выполнения
  • статус-коды

Для этого вручную добавляются вложения на момент проверки.


Параллельные прогоны и консолидация результатов

При запуске тестов в несколько потоков каждая инстанция репортера пишет данные в общий outputDir. После завершения вся информация агрегируется без дополнительных настроек. При распределённом запуске (например, в разных контейнерах) требуется ручная сборка посредством объединения каталогов allure-results.


Поддержка ретраев

Если в WebdriverIO включены retries, Allure отражает каждый повтор:

  • успешный retry помечается как прошедший с историей
  • проваленные попытки видны в детализации теста
  • финальный статус учитывается отдельно

Такая механика помогает выявлять нестабильные тесты.


Настройка окружения и параметров прогона

В отчет можно добавить сведения об окружении:

  • версия браузера
  • платформа
  • ветка репозитория
  • номер сборки
  • конфигурация тестового стенда

В Allure эти данные выводятся во вкладке Environment. Информация добавляется через файл environment.properties или API:

allure.addEnvironment('browser', 'chrome');

Снимки DOM, видео и сетевые логи

Через дополнительные сервисы WebdriverIO, драйверы браузера или CI-инфраструктуру часто прикрепляют:

  • снятие DOM-узлов
  • сетевые логи
  • запись видео
  • trace-файлы

Эта информация помогает анализировать причины падений UI-тестов.


Поддержка BDD

При использовании Cucumber или других BDD-фреймворков Allure отображает:

  • сценарии
  • шаги
  • теги
  • параметры

Структура сценариев преобразуется в читабельные деревья и вкладки.


Масштабирование в крупных проектах

В больших тестовых наборах отчёт Allure используется как аналитический инструмент. Наиболее ценно:

  • отслеживание дефектов
  • анализ flaky-тестов
  • оценка длительности прогона
  • визуализация покрытия требований
  • распределение по severity

Поддержка истории позволяет выявлять тенденции деградации или улучшения качества релизов.


Практики повышения информативности отчётов

Для повышения ценности отчётов используются:

  • осмысленные названия тестов
  • корректные severity и labels
  • вложения при падениях
  • шаги с описанием действий
  • привязка к задачам и требованиям
  • публикация отчётов в CI

Эти практики позволяют превратить отчёт в полноценный инструмент анализа качества продукта, а не просто список статусов.