JSON HTML Репортер
wdio-json-html-reporter является сторонним пакетом, для получения дополнительной информации, пожалуйста, смотрите GitHub | npm
Это пользовательский репортер WebDriverIO, который генерирует подробные JSON-отчеты во время выполнения тестов и предоставляет портативный генератор HTML-отчетов для визуализации результатов тестирования. Он записывает временные метки, метаданные выполнения и может делать скриншоты по запросу. Пакет следует соглашениям WebDriverIO дл я репортеров и опубликован в npm под именем wdio-json-html-reporter
.
Содержание
- Обзор
- Особенности
- Установка
- Использование CLI
- Опция истории и генерация агрегированной истории
- Скриншоты
Overview
WDIO JSON HTML REPORTER предоставляет два основных компонента:
- JSONReporter: Пользовательский репортер, который расширяет интерфейс репортера WebDriverIO для сбора событий тестирования и генерации JSON-файла с метаданными, результатами тестов и (опционально) скриншотами.
- HTMLReportGenerator: Утилита для преобразования нескольк их JSON-файлов отчетов в комплексный HTML-отчет с интерактивными диаграммами, фильтрацией и функцией экспорта. Кроме того, генератор отчетов теперь поддерживает опциональный файл истории для отображения исторических данных выполнения, если они доступны. Когда исторические данные не предоставляются, отчет опускает исторический раздел и показывает только уникальные ошибки.
Эти инструменты помогают получить четкое представление о ваших тестовых прогонах, что важно для отладки и непрерывной интеграции.
Features
- JSON-отчетность: Подробный отчет с временными метками, именами наборов тестов, результатами тестов, ошибками и опциональными скриншотами.
- HTML-отчетность: Преобразует JSON-отчеты в портативный HTML-отчет с панелью управления, диаграммами, подробным отчетом о тестах и возможностями фильтрации.
- Экспорт в Excel: Подробный отчет о тестах можно экспортировать в файл Excel.
- Поддержка скриншотов: Сохранение скриншотов для неудачных тесто в (или всех тестов) в зависимости от вашей конфигурации.
- Метаданные выполнения: Записывает информацию о браузере, времени начала/окончания выполнения и общей продолжительности.
- Историческое выполнение (опционально): Предоставьте файл истории JSON для включения исторических данных выполнения по набору тестов. Если исторические данные не предоставлены, отчет автоматически скроет этот раздел и отобразит только уникальные ошибки.
- Генерация агрегированной истории: JSONReporter теперь включает функцию генерации агрегированной истории. Используя статический метод
JSONReporter.generateAggregateHistory({ reportPaths, historyPath, maxHistory })
, вы можете автоматически сканировать все файлы отчетов JSON (соответствующие шаблонуtest-report-*.json
) в вашем каталоге отчетов, агрегировать результаты тестов и вычислять сравнения дефектов на основе исторических данных. Затем агрегированная запись истории добавляется в ваш файл истории и может использоваться генератором HTML-отчетов для визуализации тенденций во времени.
Installation
Чтобы установить пакет wdio-json-html-reporter
, выполните следующие шаги:
1. Install the package
Выполните следующую команду для установки пакета как зависимости для разработки:
npm install --save-dev wdio-json-html-reporter
2. Verify installation
Убедитесь, что пакет установлен правильно, выполнив:
npm list wdio-json-html-reporter
Если установка прошла успешно, вы должны увидеть вывод, похожий на:
wdio-json-html-reporter@x.x.x
3. Update WebDriverIO Configuration
Измените файл wdio.conf.js
или wdio.conf.ts
, чтобы включить пользовательский репортер:
import { JSONReporter, HTMLReportGenerator } from 'wdio-json-html-reporter';
export const config = {
reporters: [
[JSONReporter, { outputFile: './reports/test-results.json', screenshotOption: 'OnFailure' }], // Options: "No", "OnFailure", "Full"
],
onComplete: async function() {
const outputFilePath = './reports/test-report.html';
const jsonFolder = './reports'; // Directory where JSON reports are saved
// If you want to include historical data, specify the history JSON file path here.
const historyFile = './reports/history.json'; // Optional
// Optionally, generate aggregated history data before generating the HTML report.
// JSONReporter.generateAggregateHistory({ reportPaths: jsonFolder, historyPath: historyFile });
const reportGenerator = new HTMLReportGenerator(outputFilePath, historyFile);
await reportGenerator.convertJSONFolderToHTML(jsonFolder);
}
};
4. Run Your Tests
Выполните ваш набор тестов WebDriverIO:
npx wdio run wdio.conf.js
CLI Usage
Помимо интеграции с WebDriverIO, вы можете запустить генератор HTML-отчетов непосредственно из командной строки, используя встроенный CLI.
Использование:
generate-html <inputFolder> <outputFile> [historyFile]
Например, если ваши JSON-файлы находятся в папке test/reports/json-reports
, и вы хотите сгенерировать HTML-отчет с именем test/reports/report.html
, вы можете выполнить:
npx wdio-json-html-reporter generate-html test/reports/json-reports test/reports/report.html
Если у вас также есть файл истории (например, test/reports/history.json
), включите его как опциональный четвертый параметр:
npx wdio-json-html-reporter generate-html test/reports/json-reports test/reports/report.html test/reports/history.json
Примечание:
Функциональность CLI активируется только при передаче команды generate-html
в качестве первого параметра. При запуске через WebDriverIO (например, с wdio run wdio.conf.js
), логика CLI обходится.
History Option and Aggregated History Generation
Генератор HTML-отчетов теперь поддерживает опцию истории. Это позволяет предоставить JSON-файл, содержащий исторические данные выполнения, которые объединяются в отчет в разделе "Историческое выполнение по набору тестов". Если файл истории предоставлен и содержит действительные данные, отчет будет отображать исторические тенденции вместе с интерактивными диаграммами и аккордеоном для каждого набора тестов. Если файл истории не передан или если файл не содержит данных о наборе тестов, отчет автоматически скроет исторический раздел и отобразит только обзор уникальных ошибок.
Кроме того, JSONReporter теперь включает функцию генерации агрегированной истории. С помощью статического метода JSONReporter.generateAggregateHistory({ reportPaths, historyPath, maxHistory })
вы можете автоматически сканировать все файлы отчетов JSON (соответствующие шаблону test-report-*.json
) в вашем каталоге отчетов, агрегировать результаты тестов (суммируя количество тестов и объединяя данные набора тестов) и вычислять сравнения дефектов путем сравнения с последней агрегированной записью. Вновь сгенерированная запись истории затем добавляется в указанный файл истории. Эти агрегированные исторические данные впоследствии могут использоваться генератором HTML-отчетов для предоставления исторических сведений о выполнении за несколько тестовых прогонов.