Встроенный HTML-репортёр Playwright прикрепляет скриншоты и трейсы к каждому падению без какой-либо конфигурации, но генерирует новый самодостаточный отчёт на каждый прогон без истории. Allure добавляет графики трендов между прогонами, разбивку по шагам на уровне теста и фильтрацию по серьёзности, но требует отдельного шага генерации после завершения тестов. Эта статья разбирает настройку обоих репортёров, аннотации которые делают Allure оправданным с точки зрения дополнительных усилий, интеграцию с GitHub Actions для каждого варианта и критерии выбора между ними.
Встроенный HTML-репортёр
Playwright поставляется с HTML-репортёром который не требует никакой настройки. Чтобы включить:
// playwright.config.ts
reporter: [['html', { open: 'never' }]],После прогона открой playwright-report/index.html. Там будет:
- Сводка пройденных, упавших, пропущенных и флакующих тестов
- Полная иерархия тестов (файл → describe → тест)
- Продолжительность каждого теста
- Сообщения об ошибках со стектрейсами
- Скриншоты и трейсы прикреплённые прямо в отчёт для упавших тестов
- Фильтрация по статусу (клик «Failed» показывает только падения)
Опция open: 'never' останавливает репортёр от автоматического открытия браузера после каждого прогона. Локально это удобно убрать, в CI нужно обязательно.
Для CI загружай папку отчёта как артефакт:
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30if: always() гарантирует загрузку артефакта даже когда тесты падают, то есть именно тогда когда он нужен.
Запуск нескольких репортёров
Можно запускать несколько репортёров одновременно:
reporter: [
['html', { open: 'never' }],
['list'],
['junit', { outputFile: 'results.xml' }],
],В CI распространённая комбинация: list + HTML + JUnit. List для видимости в логах, HTML для людей, JUnit для CI-инструментов.
Allure-репортёр
Встроенный HTML-репортёр справляется с задачей. Allure предлагает больше: графики трендов между прогонами, фильтрацию по серьёзности, историю тестов и более удобный интерфейс. Требует дополнительной настройки.
Установка
npm install -D allure-playwright allure-commandlineКонфигурация
reporter: [
['allure-playwright'],
['list'],
],Генерация и открытие отчёта
npx allure generate allure-results --clean -o allure-report
npx allure open allure-reportПервая команда генерирует HTML из сырых результатов. Вторая открывает в браузере. В CI генерируй отчёт отдельным шагом после завершения тестов.
Аннотации Allure
Allure становится по-настоящему полезным когда аннотируешь тесты:
import { test, expect } from '@playwright/test';
import { allure } from 'allure-playwright';
test('user can place an order', async ({ page }) => {
allure.label('severity', 'critical');
allure.story('Order placement');
allure.description('Verifies end-to-end order flow from cart to confirmation.');
// шаги теста...
await allure.step('Navigate to product page', async () => {
await page.goto('/products/laptop');
});
await allure.step('Add to cart', async () => {
await page.getByRole('button', { name: 'Add to cart' }).click();
});
await allure.step('Complete checkout', async () => {
await page.getByRole('link', { name: 'Checkout' }).click();
// ...
});
});Шаги отображаются в отчёте как сворачиваемые секции: видно точный шаг который упал, а не только название теста.
Allure в GitHub Actions
- name: Run tests
run: npx playwright test
- name: Generate Allure report
if: always()
run: npx allure generate allure-results --clean -o allure-report
- name: Upload Allure report
if: always()
uses: actions/upload-artifact@v4
with:
name: allure-report
path: allure-report/
retention-days: 30Для постоянного хостинга Allure с отслеживанием истории разверни на GitHub Pages или Allure TestOps (их платный сервис). Бесплатный вариант: самостоятельный хостинг отчёта на GitHub Pages через отдельный воркфлоу.
Как выбрать между HTML и Allure
| Возможность | Playwright HTML | Allure |
|-------------|-----------------|--------|
| Настройка | Без конфигурации | npm install + команда генерации |
| Trace viewer | Встроен | Ручное прикрепление |
| История / тренды | Нет | Да |
| Аннотации (серьёзность, story, шаги) | Нет | Да |
| Размер артефакта в CI | Маленький | Больше |
| Доступ команды | Скачать артефакт | Можно хостить постоянно |
Используй встроенный HTML-репортёр когда работаешь один или с маленькой командой, когда проект новый и практики тестирования ещё только формируются, или когда хочешь нулевых затрат на обслуживание.
Используй Allure когда:
- Есть стейкхолдеры которым нужно читать отчёты но у них нет доступа к GitHub
- Хочешь отслеживать тренды стабильности тестов со временем
- Сьют достаточно большой чтобы история по каждому тесту имела значение
- Нужна классификация по серьёзности для приоритизации
Аннотации тестов без Allure
Если нужна лёгкая категоризация без Allure, Playwright поддерживает встроенные аннотации:
test('checkout fails gracefully on network error', {
tag: '@regression',
annotation: { type: 'issue', description: 'https://github.com/org/repo/issues/123' },
}, async ({ page }) => {
// тело теста
});Теги отображаются в HTML-репортёре и позволяют фильтровать запускаемые тесты:
npx playwright test --grep @regressionДля большинства команд которым не нужен полноценный Allure этого достаточно.
→ See also: Allure отчёты для Playwright: настройка расширенной отчётности | Отчёты о тестах в CI: форматы, инструменты и интеграция | Playwright Trace Viewer: отлаживайте упавшие тесты как профессионал