В мире автоматизированного тестирования результаты тестов не менее важны, чем их правильное выполнение. Когда тесты начинают расти в количестве, простого вывода в консоль становится недостаточно. Нужно видеть, какие тесты прошли, какие упали, на каком шаге произошла ошибка и какие данные к этому привели. Именно для этого в Playwright существуют репортеры.
Как и большинство тестовых инструментов Playwright умеет выдавать отчет о тестировании в разнообразных форматах. Часть из них полезны для самого процесса тестирования, а другие удобны для организации тестовой документации и необходимой отчетности в системах компании.
В 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 необходимо установить дополнительные пакеты:
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
- Установите необходимые зависимости
- Измените конфигурацию Playwright
- Сгенерируйте отчет
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.