Автоматическое создание отчётов

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

Структура отчётов

Отчёты WebdriverIO могут быть представлены в различных форматах: HTML, JSON, или даже в виде интеграции с популярными сервисами. Основная цель отчёта — предоставить всю необходимую информацию о выполненных тестах, включая подробности о прохождении или неудаче каждого теста, а также захваченные ошибки и логи.

Настройка плагинов отчётности

Для начала работы с отчётами нужно настроить соответствующие плагины. В WebdriverIO существует несколько популярных решений для создания отчётов, таких как wdio-spec-reporter, wdio-allure-reporter, и другие.

Пример конфигурации для wdio-spec-reporter:

exports.config = {
    reporters: ['spec'],
};

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

Пример конфигурации для wdio-allure-reporter:

exports.config = {
    reporters: [
        ['allure', {
            outputDir: 'allure-results',
            disableWebdriverStepsReporting: true,
            disableWebdriverScreenshotsReporting: false
        }]
    ],
};

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

Сбор данных для отчётов

WebdriverIO предоставляет возможность собирать различные виды данных для отчётов: от стандартных логов и скриншотов до видеозаписей сессий тестирования.

  1. Логирование и скриншоты

Чтобы добавить логирование или делать скриншоты в случае ошибки, можно использовать соответствующие хуки в конфигурации WebdriverIO. Например, чтобы сделать скриншот в случае неудачи теста, нужно добавить следующий код в конфигурацию:

afterTest: function(test) {
    if (test.passed) return;
    
    browser.saveScreenshot(`./screenshots/${test.title}.png`);
},

Этот хук сохраняет скриншот для каждого теста, который не прошёл. Скриншоты могут быть полезны для быстрой диагностики проблем.

  1. Видеозапись сессий

Для записи видео с выполнения тестов можно использовать плагин wdio-video-reporter. Для его установки и настройки достаточно добавить следующее в конфигурацию:

exports.config = {
    reporters: [
        ['video', {
            outputDir: './videos',
            videoName: '${browserName}-${os}-${platform}-${timestamp}.mp4',
            saveAllVideos: false,
            videoScreen: 'full'
        }]
    ],
};

Плагин будет записывать видео для каждого теста и сохранять его в указанную директорию.

  1. Allure Report

Allure является одним из самых популярных решений для тестовых отчётов. Для использования Allure с WebdriverIO необходимо установить плагин и настроить его:

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

Затем в конфигурации теста включить плагин:

exports.config = {
    reporters: [
        ['allure', {
            outputDir: 'allure-results',
            disableWebdriverStepsReporting: true,
            disableWebdriverScreenshotsReporting: false
        }]
    ],
};

После этого можно запускать тесты, а отчёты в формате Allure будут автоматически генерироваться в указанной директории allure-results. Для визуализации этих отчётов можно использовать Allure Commandline Tool, который генерирует красивый HTML-отчёт.

Расширенные возможности отчётов

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

  1. Перехват и анализ логов

WebdriverIO позволяет интегрировать перехват логов браузера в отчёты. Это полезно для анализа ошибок JavaScript, сетевых запросов и других действий, происходящих на странице.

afterTest: async function(test) {
    if (test.passed) return;
    
    const logs = await browser.getLogs('browser');
    logs.forEach(log => console.log(log.message));
},

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

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

WebdriverIO поддерживает интеграцию с системами непрерывной интеграции, такими как Jenkins, GitLab CI и другими. В таких системах отчёты часто генерируются в формате HTML или JSON и отправляются в централизованный репозиторий или сервис для анализа.

Для того чтобы интегрировать отчёты WebdriverIO с Jenkins, можно использовать плагин Allure для Jenkins, который автоматически собирает результаты тестов и визуализирует их в виде интерактивных отчётов.

Заключение

Автоматическое создание отчётов в WebdriverIO является мощным инструментом для анализа тестов, помогает выявить ошибки и отслеживать стабильность приложений. Благодаря широкому выбору плагинов и настроек, можно настроить отчёты, которые соответствуют требованиям конкретного проекта или команды, что значительно облегчает процесс тестирования и диагностики.