Spec-Zone.ru › Playwright

Репортёры

Введение​

Playwright Test включает несколько встроенных репортёров для разных задач, а также позволяет создавать собственные. Самый простой способ попробовать встроенные репортёры — передать --reporter параметр командной строки.

npx playwright test --reporter=line

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

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: 'line',
});

Несколько репортёров​

Можно использовать несколько репортёров одновременно. Например, можно использовать 'list' для удобного вывода в терминале и 'json' для получения подробного JSON-файла с результатами тестов.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [
    ['list'],
    ['json', {  outputFile: 'test-results.json' }]
  ],
});

Репортёры в CI​

Локально и в CI можно использовать разные репортёры. Например, лаконичный репортёр 'dot' позволяет избежать избыточного вывода. Он используется по умолчанию в CI.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  // Concise 'dot' for CI, default 'list' when running locally
  reporter: process.env.CI ? 'dot' : 'list',
});

Встроенные репортёры​

Все встроенные репортёры подробно отображают сведения об ошибках и различаются главным образом объёмом вывода при успешном выполнении тестов.

Репортёр «Список»​

Репортёр «Список» используется по умолчанию (кроме CI, где по умолчанию используется репортёр dot). Он выводит отдельную строку для каждого выполняемого теста.

npx playwright test --reporter=list
import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: 'list',
});

Вот пример вывода в середине выполнения тестов. По умолчанию сведения об ошибках выводятся в конце.

npx playwright test --reporter=list
Running 124 tests using 6 workers

 1  ✓ should access error in env (438ms)
 2  ✓ handle long test names (515ms)
 3  x 1) render expected (691ms)
 4  ✓ should timeout (932ms)
 5    should repeat each:
 6  ✓ should respect enclosing .gitignore (569ms)
 7    should teardown env after timeout:
 8    should respect excluded tests:
 9  ✓ should handle env beforeEach error (638ms)
10    should respect enclosing .gitignore:

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

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['list', { printSteps: true }]],
});

Можно выводить сведения об ошибках сразу после их появления, не дожидаясь окончания выполнения тестов:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['list', { printFailuresInline: true }]],
});

Можно скрыть теги тестов, которые автоматически добавляются к их заголовкам:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['list', { omitTags: true }]],
});

Репортёр «Список» поддерживает следующие параметры конфигурации и переменные среды:

Имя переменной среды Параметр конфигурации репортёра Описание Значение по умолчанию
PLAYWRIGHT_LIST_PRINT_STEPS printSteps Выводить ли каждый шаг на отдельной строке. false
PLAYWRIGHT_LIST_PRINT_FAILURES_INLINE printFailuresInline Выводить ли сведения об ошибке сразу после завершения теста с ошибкой, а не в конце. false
PLAYWRIGHT_LIST_OMIT_TAGS omitTags Скрывать ли теги тестов, которые автоматически добавляются к их заголовкам. false
PLAYWRIGHT_FORCE_TTY Создавать ли вывод для работающего терминала. Поддерживаются true, 1, false, 0, [WIDTH] и [WIDTH]x[HEIGHT]. Параметры [WIDTH] и [WIDTH]x[HEIGHT] задают размеры TTY. true, если терминал работает в режиме TTY, и false в противном случае.
FORCE_COLOR Выводить ли цветной текст. true, если терминал работает в режиме TTY, и false в противном случае.
NO_COLOR Отключать ли цветной вывод (no-color.org). Любое непустое значение отключает цвета. не задано

Строчный репортёр​

Строчный репортёр лаконичнее репортёра «Список». Он использует одну строку для вывода сведений о последнем завершённом тесте и сообщает об ошибках по мере их появления. Строчный репортёр полезен для больших наборов тестов: он показывает ход выполнения, не засоряя вывод перечислением всех тестов.

npx playwright test --reporter=line
import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: 'line',
});

Вот пример вывода в середине выполнения тестов. Сведения об ошибках выводятся сразу.

npx playwright test --reporter=line
Running 124 tests using 6 workers
  1) dot-reporter.spec.ts:20:1 › render expected ===================================================

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 1
    Received: 0

[23/124] gitignore.spec.ts - should respect nested .gitignore

Строчный репортёр поддерживает следующие параметры конфигурации и переменные среды:

Имя переменной среды Параметр конфигурации репортёра Описание Значение по умолчанию
PLAYWRIGHT_LINE_OMIT_TAGS omitTags Скрывать ли теги тестов, которые автоматически добавляются к их заголовкам. false
PLAYWRIGHT_FORCE_TTY Создавать ли вывод для работающего терминала. Поддерживаются true, 1, false, 0, [WIDTH] и [WIDTH]x[HEIGHT]. Параметры [WIDTH] и [WIDTH]x[HEIGHT] задают размеры TTY. true, если терминал работает в режиме TTY, и false в противном случае.
FORCE_COLOR Выводить ли цветной текст. true, если терминал работает в режиме TTY, и false в противном случае.
NO_COLOR Отключать ли цветной вывод (no-color.org). Любое непустое значение отключает цвета. не задано

Репортёр «Точки»​

Репортёр «Точки» очень лаконичен: для каждого успешно выполненного теста он выводит только один символ. Это репортёр по умолчанию в CI; он полезен, когда требуется сократить объём вывода.

npx playwright test --reporter=dot
import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: 'dot',
});

Вот пример вывода в середине выполнения тестов. Сведения об ошибках будут выведены в конце.

npx playwright test --reporter=dot
Running 124 tests using 6 workers
······F·············································

Для каждого выполненного теста отображается символ, обозначающий его результат:

Символ Описание
· Пройден
F Завершился с ошибкой
× Завершился с ошибкой или превышено время ожидания — будет повторная попытка
± Пройден при повторной попытке (нестабильный результат)
T Превышено время ожидания
° Пропущен

Репортёр «Точки» поддерживает следующие параметры конфигурации и переменные среды:

Имя переменной среды Параметр конфигурации репортёра Описание Значение по умолчанию
PLAYWRIGHT_DOT_OMIT_TAGS omitTags Скрывать ли теги тестов, которые автоматически добавляются к их заголовкам. false
PLAYWRIGHT_FORCE_TTY Создавать ли вывод для работающего терминала. Поддерживаются true, 1, false, 0, [WIDTH] и [WIDTH]x[HEIGHT]. Параметры [WIDTH] и [WIDTH]x[HEIGHT] задают размеры TTY. true, если терминал работает в режиме TTY, и false в противном случае.
FORCE_COLOR Выводить ли цветной текст. true, если терминал работает в режиме TTY, и false в противном случае.
NO_COLOR Отключать ли цветной вывод (no-color.org). Любое непустое значение отключает цвета. не задано

HTML-репортёр​

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

npx playwright test --reporter=html

По умолчанию HTML-отчёт автоматически открывается, если некоторые тесты завершились с ошибкой. Это поведение можно настроить с помощью свойства open в конфигурации Playwright или переменной среды PLAYWRIGHT_HTML_OPEN. Возможные значения этого свойства: always, never и on-failure (по умолчанию).

Также можно настроить host и port, которые используются для публикации HTML-отчёта.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['html', { open: 'never' }]],
});

По умолчанию отчёт сохраняется в папке playwright-report в текущем рабочем каталоге. Путь можно изменить с помощью переменной среды PLAYWRIGHT_HTML_OUTPUT_DIR или конфигурации репортёра.

В файле конфигурации передайте параметры напрямую:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['html', { outputFolder: 'my-report' }]],
});

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

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['html', { attachmentsBaseURL: 'https://external-storage.com/' }]],
});

Чтобы быстро открыть отчёт о последнем запуске тестов, выполните:

npx playwright show-report

Если папка имеет другое имя, выполните:

npx playwright show-report my-report

Можно также передать архив .zip — например, загруженный из артефакта CI. На верхнем уровне архива должен находиться index.html. Playwright извлечёт его во временный каталог и опубликует отчёт:

npx playwright show-report playwright-report.zip

HTML-отчёт поддерживает следующие параметры конфигурации и переменные среды:

Имя переменной среды Параметр конфигурации репортёра Описание Значение по умолчанию
PLAYWRIGHT_HTML_TITLE title Заголовок, отображаемый в созданном отчёте. По умолчанию заголовок не отображается
PLAYWRIGHT_HTML_OUTPUT_DIR outputFolder Каталог для сохранения отчёта. playwright-report
PLAYWRIGHT_HTML_OPEN open Когда открывать HTML-отчёт в браузере: одно из значений 'always', 'never' или 'on-failure' 'on-failure'
PLAYWRIGHT_HTML_HOST host При открытии отчёта в браузере он будет опубликован с привязкой к этому имени хоста. localhost
PLAYWRIGHT_HTML_PORT port При открытии отчёта в браузере он будет опубликован на этом порту. 9323 или любой доступный порт, если 9323 недоступен.
PLAYWRIGHT_HTML_ATTACHMENTS_BASE_URL attachmentsBaseURL Отдельное расположение, куда загружаются вложения из подкаталога data. Требуется только в том случае, если отчёт и data загружаются в разные расположения. data/
PLAYWRIGHT_HTML_NO_COPY_PROMPT noCopyPrompt Если значение равно true, отключает отображение подсказки Copy для ошибок. Поддерживаются true, 1, false и 0. false
PLAYWRIGHT_HTML_NO_SNIPPETS noSnippets Если значение равно true, отключает отображение фрагментов кода в журнале действий. Если возникла ошибка верхнего уровня, соответствующий раздел отчёта с фрагментом кода всё равно будет отображён. Поддерживаются true, 1, false и 0. false
PLAYWRIGHT_HTML_DO_NOT_INLINE_ASSETS doNotInlineAssets Если значение равно true, JavaScript, CSS и данные отчёта записываются в отдельные файлы рядом с index.html, а не встраиваются в него. Используйте этот параметр, если отчёт публикуется с применением строгой политики безопасности содержимого, запрещающей встроенные скрипты и стили. Поддерживаются true, 1, false и 0. false
PLAYWRIGHT_HTML_MERGE_FILES mergeFiles Если значение равно true, тесты группируются по заголовку верхнеуровневого test.describe(), а не по файлу, к которому они относятся. Поддерживаются true, 1, false и 0. false

Репортёр Blob​

Отчёты Blob содержат все сведения о запуске тестов и могут использоваться для создания других отчётов. Их основное назначение — упрощать объединение отчётов о распределённых тестах.

npx playwright test --reporter=blob

По умолчанию отчёт записывается в каталог blob-report в каталоге package.json или в текущем рабочем каталоге (если package.json не найден).

Имя файла отчёта имеет вид report-<hash>.zip или report-<hash>-<shard_number>.zip, если используется распределение тестов. Хеш — необязательное значение, вычисляемое на основе --grep, --grepInverted, --project, testConfig.tag и фильтров файлов, переданных в качестве аргументов командной строки. Хеш гарантирует, что при запуске Playwright с разными параметрами командной строки будут создаваться разные имена отчётов, остающиеся неизменными при повторных запусках с теми же параметрами. Имя выходного файла можно переопределить в файле конфигурации или задать с помощью переменной среды 'PLAYWRIGHT_BLOB_OUTPUT_FILE'.

  • Сегменты
  • Среды

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

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: 'blob',
});

При запуске тестов в разных средах можно использовать testConfig.tag, чтобы добавить общий тег, соответствующий среде. Этот тег сделает объединённый отчёт понятнее и будет использоваться для создания уникального имени отчёта Blob.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: 'blob',
  tag: process.env.CI_ENVIRONMENT_NAME,  // for example "@APIv2" or "@linux"
});

Отчёт Blob поддерживает следующие параметры конфигурации и переменные среды:

Имя переменной среды Параметр конфигурации репортёра Описание Значение по умолчанию
PLAYWRIGHT_BLOB_OUTPUT_DIR outputDir Каталог для сохранения выходных данных. Перед записью нового отчёта его содержимое удаляется. blob-report
PLAYWRIGHT_BLOB_OUTPUT_NAME fileName Имя файла отчёта. report-<project>-<hash>-<shard_number>.zip
PLAYWRIGHT_BLOB_OUTPUT_FILE outputFile Полный путь к выходному файлу. Если он задан, outputDir и fileName игнорируются. undefined

Репортёр JSON​

Репортёр JSON создаёт объект со всеми сведениями о запуске тестов.

Скорее всего, вам понадобится записать JSON в файл. При запуске с --reporter=json используйте переменную среды PLAYWRIGHT_JSON_OUTPUT_NAME:

  • Bash
  • PowerShell
  • Batch
PLAYWRIGHT_JSON_OUTPUT_NAME=results.json npx playwright test --reporter=json
$env:PLAYWRIGHT_JSON_OUTPUT_NAME="results.json"
npx playwright test --reporter=json
set PLAYWRIGHT_JSON_OUTPUT_NAME=results.json
npx playwright test --reporter=json

В файле конфигурации передайте параметры напрямую:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['json', { outputFile: 'results.json' }]],
});

Отчёт JSON поддерживает следующие параметры конфигурации и переменные среды:

Имя переменной среды Параметр конфигурации репортёра Описание Значение по умолчанию
PLAYWRIGHT_JSON_OUTPUT_DIR Каталог для сохранения выходного файла. Игнорируется, если указан выходной файл. cwd или каталог конфигурации.
PLAYWRIGHT_JSON_OUTPUT_NAME outputFile Базовое имя выходного файла относительно выходного каталога. Отчёт JSON выводится в stdout.
PLAYWRIGHT_JSON_OUTPUT_FILE outputFile Полный путь к выходному файлу. Если он задан, PLAYWRIGHT_JSON_OUTPUT_DIR и PLAYWRIGHT_JSON_OUTPUT_NAME игнорируются. Отчёт JSON выводится в stdout.

Репортёр JUnit​

Репортёр JUnit создаёт XML-отчёт в формате JUnit.

Скорее всего, вам понадобится записать отчёт в XML-файл. При запуске с --reporter=junit используйте переменную среды PLAYWRIGHT_JUNIT_OUTPUT_NAME:

  • Bash
  • PowerShell
  • Batch
PLAYWRIGHT_JUNIT_OUTPUT_NAME=results.xml npx playwright test --reporter=junit
$env:PLAYWRIGHT_JUNIT_OUTPUT_NAME="results.xml"
npx playwright test --reporter=junit
set PLAYWRIGHT_JUNIT_OUTPUT_NAME=results.xml
npx playwright test --reporter=junit

В файле конфигурации передайте параметры напрямую:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['junit', { outputFile: 'results.xml' }]],
});

Отчёт JUnit поддерживает следующие параметры конфигурации и переменные среды:

Имя переменной среды Параметр конфигурации репортёра Описание Значение по умолчанию
PLAYWRIGHT_JUNIT_OUTPUT_DIR Каталог для сохранения выходного файла. Игнорируется, если выходной файл не указан. cwd или каталог конфигурации.
PLAYWRIGHT_JUNIT_OUTPUT_NAME outputFile Базовое имя выходного файла относительно выходного каталога. Отчёт JUnit выводится в stdout.
PLAYWRIGHT_JUNIT_OUTPUT_FILE outputFile Полный путь к выходному файлу. Если он задан, PLAYWRIGHT_JUNIT_OUTPUT_DIR и PLAYWRIGHT_JUNIT_OUTPUT_NAME игнорируются. Отчёт JUnit выводится в stdout.
PLAYWRIGHT_JUNIT_STRIP_ANSI stripANSIControlSequences Удалять ли управляющие последовательности ANSI из текста перед записью в отчёт. По умолчанию текст выводится без изменений.
PLAYWRIGHT_JUNIT_INCLUDE_PROJECT_IN_TEST_NAME includeProjectInTestName Добавлять ли имя проекта Playwright в начало имени каждого теста. По умолчанию не добавляется.
PLAYWRIGHT_JUNIT_OMIT_TAGS omitTags Скрывать ли теги тестов, которые автоматически добавляются к сведениям об ошибках. false
PLAYWRIGHT_JUNIT_SUITE_ID Значение атрибута id корневой записи отчёта <testsuites/>. Пустая строка.
PLAYWRIGHT_JUNIT_SUITE_NAME Значение атрибута name корневой записи отчёта <testsuites/>. Пустая строка.

Репортёр Perfetto​

Репортёр Perfetto создаёт JSON-файл в формате Trace Event Format, который можно открыть в интерфейсе Perfetto или в chrome://tracing. Запуск тестов отображается в виде временной шкалы с отдельной дорожкой для каждого рабочего процесса. Каждый тест представлен интервалом, содержащим вложенные интервалы для хуков до и после теста, фикстур и шагов. Каждый интервал содержит сведения о тесте или шаге в аргументах трассировки, включая расположение исходного кода, testStep.params, теги, аннотации, ошибки, потоки стандартного ввода-вывода и пути к файлам вложений.

npx playwright test --reporter=perfetto

По умолчанию отчёт записывается в test-results/perfetto.json. Если имя выходного файла заканчивается на .gz, отчёт сжимается с помощью gzip во время записи; оба просмотрщика поддерживают такой формат, который особенно удобен для больших запусков тестов.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [['perfetto', { outputFile: 'perfetto.json.gz' }]],
});

Отчёт Perfetto поддерживает следующие параметры конфигурации и переменные среды:

Имя переменной среды Параметр конфигурации репортёра Описание Значение по умолчанию
PLAYWRIGHT_PERFETTO_OUTPUT_DIR Каталог для сохранения выходного файла. Игнорируется, если выходной файл указан. test-results
PLAYWRIGHT_PERFETTO_OUTPUT_NAME Базовое имя выходного файла относительно выходного каталога. perfetto.json
PLAYWRIGHT_PERFETTO_OUTPUT_FILE outputFile Полный путь к выходному файлу. Если он задан, PLAYWRIGHT_PERFETTO_OUTPUT_DIR и PLAYWRIGHT_PERFETTO_OUTPUT_NAME игнорируются. undefined

Аннотации GitHub Actions​

Чтобы автоматически добавлять аннотации к ошибкам при запуске в GitHub Actions, можно использовать встроенный репортёр github.

Обратите внимание: все остальные репортёры также работают в GitHub Actions, но не создают аннотации. Кроме того, не рекомендуется использовать этот тип аннотаций при запуске тестов со стратегией matrix: трассировки стека ошибок будут дублироваться и затруднят просмотр файлов GitHub.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  // 'github' for GitHub Actions CI to generate annotations, plus a concise 'dot'
  // default 'list' when running locally
  reporter: process.env.CI ? 'github' : 'list',
});

Репортёр github принимает параметр omitTags (или переменную среды PLAYWRIGHT_GITHUB_OMIT_TAGS), позволяющий скрывать теги тестов в аннотациях, например reporter: [['github', { omitTags: true }]].

Собственные репортёры​

Можно создать собственный репортёр, реализовав класс с некоторыми методами репортёра. Подробнее об API Reporter.

import type {
  FullConfig, FullResult, Reporter, Suite, TestCase, TestResult
} from '@playwright/test/reporter';

class MyReporter implements Reporter {
  onBegin(config: FullConfig, suite: Suite) {
    console.log(`Starting the run with ${suite.allTests().length} tests`);
  }

  onTestBegin(test: TestCase, result: TestResult) {
    console.log(`Starting test ${test.title}`);
  }

  onTestEnd(test: TestCase, result: TestResult) {
    console.log(`Finished test ${test.title}: ${result.status}`);
  }

  onEnd(result: FullResult) {
    console.log(`Finished the run: ${result.status}`);
  }
}

export default MyReporter;

Теперь используйте этот репортёр с помощью testConfig.reporter.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: './my-awesome-reporter.ts',
});

Или просто передайте путь к файлу репортёра в качестве параметра командной строки --reporter:

npx playwright test --reporter="./myreporter/my-awesome-reporter.ts"

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

  • Репортёр Allure
  • Репортёр GitHub Actions
  • Почтовый репортёр
  • ReportPortal
  • Monocart

© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/test-reporters

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API