Playwright предоставляет несколько встроенных репортеров, которые позволяют легко отслеживать и анализировать результаты тестов. Эти репортеры являются важным инструментом для улучшения взаимодействия с тестами, а также для получения полезной информации о процессе тестирования и его результатах.
Playwright включает несколько репортеров по умолчанию, которые можно использовать для различных целей. Каждый из них предоставляет различные форматы отчетности, что позволяет адаптировать вывод тестов под нужды команды или проекта.
Dot Reporter
Один из самых простых репортеров, который отображает точку (“.”) для каждого успешно пройденного теста и другие символы для различных состояний теста. Этот репортер идеально подходит для использования в CI/CD-пайплайнах, где необходим минималистичный вывод.
Пример:
▸ ▸ ▸ ▸ ..List Reporter
Этот репортер предоставляет более подробную информацию о каждом тесте, выводя их имена и статус выполнения. Он является хорошим выбором, когда нужно видеть подробности о каждом тесте в процессе выполнения.
Пример:
Running tests in parallel
Test #1: should load homepage - passed
Test #2: should display error message - failedJSON Reporter
JSON-репортер выводит результаты в формате JSON, который идеально подходит для дальнейшего анализа или интеграции с внешними системами. Он предоставляет полную информацию о каждом тесте, включая его имя, статус, продолжительность и ошибки, если они возникли. Этот формат идеально подходит для построения отчетов или анализа данных в других инструментах.
Пример:
{
"testResults": [
{
"name": "should load homepage",
"status": "passed",
"duration": 1200
},
{
"name": "should display error message",
"status": "failed",
"error": {
"message": "Expected error message not found."
}
}
]
}HTML Reporter
HTML-репортер генерирует подробный отчет в формате HTML, который можно просматривать в браузере. Это визуальный репортер, который позволяет легко анализировать результаты тестов, особенно в больших проектах, где требуется быстрое выделение проблемных мест.
Пример отчета включает информацию о тестах, ошибках и шаги выполнения с возможностью навигации.
Для использования встроенных репортеров необходимо указать их в
конфигурации Playwright. Это можно сделать в файле
playwright.config.js с помощью параметра
reporter. Важно отметить, что Playwright позволяет
использовать несколько репортеров одновременно, разделяя их запятой.
Пример конфигурации с использованием нескольких репортеров:
// playwright.config.js
module.exports = {
reporter: [
['dot'],
['json', { outputFile: 'test-results.json' }],
['html', { outputFolder: 'html-report' }]
]
};
В этом примере используются три репортера: dot,
json и html. Каждый из них генерирует отчет в
разных форматах и сохраняет его в указанных местах.
Каждый репортер может быть настроен с помощью различных параметров. Например, HTML-репортер может принимать параметры для изменения папки, в которую будет сохранен отчет, или для задания дополнительных настроек оформления.
Пример использования JSON-репортера с параметрами:
module.exports = {
reporter: [
['json', { outputFile: 'reports/results.json' }]
]
};
Здесь отчеты будут сохранены в файл results.json внутри
папки reports.
Когда тесты выполняются параллельно, важно отслеживать результаты каждого теста и при этом сохранять целостность отчета. Playwright позволяет использовать встроенные репортеры, которые могут правильно отображать результаты для каждого потока исполнения.
Пример конфигурации для параллельного выполнения:
module.exports = {
workers: 4,
reporter: 'list'
};
С этой настройкой тесты будут выполняться в 4 параллельных потока, и
репортер list будет выводить информацию о каждом тесте,
включая их статус.
Playwright также поддерживает возможность записи скриншотов и видео в процессе выполнения тестов. Эти материалы могут быть полезны для анализа неудачных тестов и выяснения причин их сбоя. Встроенные репортеры могут быть настроены для включения этих файлов в итоговый отчет.
Для того чтобы сохранять скриншоты или видео, необходимо настроить их в конфигурации:
module.exports = {
use: {
screenshot: 'only-on-failure',
video: 'retain-on-failure'
},
reporter: 'html'
};
В этом примере скриншоты и видео будут сохраняться только в случае неудачи теста. Результаты можно будет увидеть в отчете в формате HTML.
Кроме встроенных репортеров, Playwright позволяет создавать свои собственные кастомные репортеры. Это особенно полезно, если стандартные репортеры не покрывают все требования проекта.
Для этого нужно создать класс, который реализует интерфейс репортера. Основные методы, которые должны быть реализованы в кастомном репортере:
onBegin(config, suite): вызывается перед запуском
тестов.onTestBegin(test): вызывается перед началом выполнения
каждого теста.onTestEnd(test, result): вызывается после завершения
каждого теста.onEnd(result): вызывается по завершению всех
тестов.Пример кастомного репортера:
class CustomReporter {
onBegin(config, suite) {
console.log('Test execution started');
}
onTestBegin(test) {
console.log(`Test ${test.title} started`);
}
onTestEnd(test, result) {
console.log(`Test ${test.title} finished with status: ${result.status}`);
}
onEnd(result) {
console.log('Test execution finished');
}
}
Затем кастомный репортер можно добавить в конфигурацию:
module.exports = {
reporter: new CustomReporter()
};
С помощью этого подхода можно реализовать любые требования к формату отчетности и обработке результатов тестов.
Встроенные репортеры Playwright предоставляют широкие возможности для настройки выводов результатов тестов, начиная от простых символов до подробных HTML- и JSON-отчетов. Используя эти инструменты, можно эффективно отслеживать статус тестов, анализировать ошибки и интегрировать результаты с другими системами. Настройка и использование репортеров позволяет гибко адаптировать процесс тестирования под конкретные потребности проекта.