JSON Reporter — это инструмент в Playwright, который позволяет записывать и экспортировать результаты тестирования в формате JSON. Это полезно для интеграции с другими системами, таких как CI/CD, а также для последующего анализа или отчётности.
JSON Reporter активируется через настройку в конфигурационном файле
Playwright. Для включения этого репортера необходимо добавить его в
раздел reporter в файле конфигурации
playwright.config.ts или
playwright.config.js.
Пример конфигурации:
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: [['json', { outputFile: 'test-results.json' }]],
});
В этом примере результаты тестов будут сохранены в файл
test-results.json. Параметр outputFile
указывает путь к файлу, в который будут записаны данные.
JSON Reporter экспортирует данные в виде структуры, которая представляет результаты всех тестов, выполненных в процессе тестирования. Структура JSON содержит несколько ключевых элементов:
tests: Массив объектов, представляющих
каждый отдельный тест.startTime: Время начала теста.endTime: Время окончания теста.status: Статус теста (например,
“passed”, “failed”).duration: Время выполнения теста в
миллисекундах.testName: Имя теста.steps: Массив шагов теста, если они
были записаны.errors: Ошибки, если тест не
прошёл.Пример структуры JSON файла:
{
"startTime": "2023-01-01T00:00:00Z",
"endTime": "2023-01-01T00:30:00Z",
"tests": [
{
"testName": "Test 1",
"status": "passed",
"startTime": "2023-01-01T00:01:00Z",
"endTime": "2023-01-01T00:05:00Z",
"duration": 240000,
"steps": [
{
"action": "navigate",
"target": "https://example.com"
},
{
"action": "click",
"target": "#submit-button"
}
],
"errors": []
},
{
"testName": "Test 2",
"status": "failed",
"startTime": "2023-01-01T00:06:00Z",
"endTime": "2023-01-01T00:10:00Z",
"duration": 240000,
"steps": [
{
"action": "navigate",
"target": "https://example.com"
},
{
"action": "click",
"target": "#non-existing-button"
}
],
"errors": [
{
"message": "Element not found: #non-existing-button",
"stack": "Error: Element not found"
}
]
}
]
}
JSON Reporter идеально подходит для интеграции с процессами CI/CD. Результаты тестов в формате JSON можно легко анализировать с помощью различных инструментов и сервисов для мониторинга и отчётности. Например, вы можете настроить систему сборки, чтобы на основе данных JSON автоматически отправлять уведомления о результатах тестов, или интегрировать их с другими тестовыми аналитическими инструментами.
Чтобы автоматически загружать результаты в систему мониторинга, например в Jenkins или GitLab CI, можно использовать соответствующие плагины, которые обрабатывают файлы JSON и отображают отчёты.
Пример для GitLab CI:
test:
script:
- npx playwright test
artifacts:
paths:
- test-results.json
when: always
В данном случае результаты тестирования сохраняются как артефакт, и могут быть использованы в последующих этапах пайплайна или для отображения в отчётах.
JSON Reporter также помогает отслеживать ошибки, которые произошли во время выполнения тестов. Если тест не прошёл, в JSON файле будет указан список ошибок с подробными сообщениями и стеками вызовов. Это позволяет разработчикам и тестировщикам эффективно анализировать причины сбоев.
Пример ошибки в JSON:
"errors": [
{
"message": "Element not found: #submit-button",
"stack": "Error: Element not found at https://example.com"
}
]
JSON Reporter является мощным инструментом для профессиональных тестировщиков, обеспечивая высокую гибкость и возможность масштабируемой аналитики.