Репортёры
Введение
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"
Ниже приведён краткий список реализаций репортёров с открытым исходным кодом, которые можно посмотреть при создании собственного репортёра:
© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/test-reporters