Зарегистрируйтесь, чтобы продолжить обучение

Встроенные Репортеры + Allure Тестирование с Playwright

В мире автоматизированного тестирования результаты тестов не менее важны, чем их правильное выполнение. Когда тесты начинают расти в количестве, простого вывода в консоль становится недостаточно. Нужно видеть, какие тесты прошли, какие упали, на каком шаге произошла ошибка и какие данные к этому привели. Именно для этого в Playwright существуют репортеры.

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

Playwright HTML Report

В Playwright по умолчанию есть несколько встроенных репортёров, которые могут просто вывести результаты в консоль, сохранить их в JSON или XML, а также сформировать детализированный HTML-отчёт. Но если речь идёт о сложных тестах, особенно в больших проектах, нужен мощный инструмент для визуализации. И здесь на помощь приходит Allure Report, который предоставляет следующие форматы и способы отображения результатов тестов:

  • list (используется по умолчанию) – простой список с результатами тестов.
  • dot – минималистичный вывод в виде точек.
  • json – сохраняет результаты в JSON-файл.
  • junit – генерирует отчёт в формате JUnit XML.
  • github – генерирует отчёт заточенный под Github Actions, нужен только для CI.
  • html – создаёт HTML-отчёт в директории playwright-report.
  • allure (устанавливается отдельно) – интеграция с Allure Report.

Репортер можно указать через командную строку:

npx playwright test --reporter=line

Или настроить в конфигурационном файле:

// playwright.config.ts
export default defineConfig({
  // остальные опции

  reporter: 'html',
})

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

Результаты отчетов

Репортеры выдают свои результаты двумя способами. Одни выплевывают прямо в терминал после запуска команды, другие складывают их в папку playwright-report.

  • В терминал: list, dot, json, junit
  • В папку: html, allure

Последние можно посмотреть открыв файл playwright-report/index.html или воспользоваться командой самого Playwright:

npx playwright show-report

Но все эти способы хороши для базовых нужд. Когда тестов становится много, требуется что-то более мощное, что позволит не просто видеть успехи и провалы, но и разбирать шаги, загружать скриншоты, прикреплять логи и анализировать тренды. Именно для этого используется Allure.

Интеграция с Allure

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

Allure + Playwright

Для начала работы с Allure в Playwright необходимо установить дополнительные пакеты:

npm install --save-dev allure-playwright allure-commandline

После этого нужно изменить конфигурацию Playwright, добавив Allure как репортёр:

export default defineConfig({
  reporter: [['line'], ['allure-playwright']],
})

Теперь при каждом запуске тестов Playwright будет сохранять результаты в json-формате в папку allure-results. Однако сами отчёты ещё нужно сгенерировать. После выполнения тестов:

npx playwright test

нужно выполнить команду:

npx allure serve

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

Всё вышеперечисленное — это стандартная функциональность. Но настоящая мощь Allure раскрывается, когда тесты начинают добавлять дополнительные данные.

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

import test from '@playwright/test'
import { allure } from 'allure-playwright'

test('Example test', async ({ page }) => {
  await allure.step('Открытие главной страницы', async () => {
    await page.goto('https://demo.playwright.dev/todomvc/')
  })

  await allure.step('Проверка заголовка', async () => {
    const title = await page.title()
    test.expect(title).toBe('Example Domain')
  })
})

В результате в отчёте будет видно, что тест не просто "запустился и завершился", а какие именно шаги он выполнял.

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

import { test } from '@playwright/test'
import * as allure from 'allure-js-commons'
import { ContentType } from 'allure-js-commons'

test('Какой-то тест', async () => {
  // ...

  await allure.attachmentPath('Screenshot', '/path/to/image.png', {
    contentType: ContentType.PNG,
    fileExtension: 'png',
  })

  // Можно даже сохранять текстовые файлы
  await allure.attachment('Текстовый файл', 'Содержимое', ContentType.TEXT)
})

Репортёры Playwright делают тестирование прозрачным, но Allure позволяет вывести это на новый уровень. Он фиксирует не просто успехи и провалы тестов, а всю информацию о процессе их выполнения: шаги, вложения, историю выполнения. Это делает его мощным инструментом для команд, работающих с автотестами в реальных проектах.


Самостоятельная работа

Повторите шаги из урока для формирования отчета с помощью Allure Report

  1. Установите необходимые зависимости
  2. Измените конфигурацию Playwright
  3. Сгенерируйте отчет

Дополнительные материалы

  1. Возможности Allure в Playwright

Для полного доступа к курсу нужен базовый план

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

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff