Przejdź do głównej treści

Narzędzie do raportowania JSON HTML Reporter

wdio-json-html-reporter to pakiet zewnętrzny, więcej informacji można znaleźć na GitHub | npm

Jest to niestandardowe narzędzie do raportowania WebDriverIO, które generuje szczegółowe raporty JSON podczas wykonywania testów i dostarcza przenośny generator raportów HTML do wizualizacji wyników testów. Rejestruje znaczniki czasowe, metadane wykonania i może przechwytywać zrzuty ekranu na żądanie. Pakiet jest zgodny z konwencją WebDriverIO dla narzędzi raportujących i jest publikowany jako pakiet npm pod nazwą wdio-json-html-reporter.

Spis treści

Overview

WDIO JSON HTML REPORTER dostarcza dwa główne komponenty:

  • JSONReporter: Niestandardowe narzędzie raportujące, które rozszerza interfejs reportera WebDriverIO, aby zbierać zdarzenia testowe i generować plik JSON z metadanymi, wynikami testów i (opcjonalnie) zrzutami ekranu.
  • HTMLReportGenerator: Narzędzie do konwersji wielu plików raportu JSON do kompleksowego raportu HTML z interaktywnymi wykresami, filtrowaniem i funkcją eksportu. Dodatkowo, generator raportów obsługuje teraz opcjonalny plik historii, aby wyświetlać dane historyczne wykonania, jeśli są dostępne. Gdy nie dostarczono danych historycznych, raport pomija sekcję historyczną i pokazuje tylko unikalne błędy.

Te narzędzia pomagają uzyskać jasny wgląd w przebieg testów, co jest niezbędne do debugowania i ciągłej integracji.

Features

  • Raportowanie JSON: Szczegółowy raport ze znacznikami czasowymi, nazwami zestawów, wynikami testów, błędami i opcjonalnymi zrzutami ekranu.
  • Raportowanie HTML: Konwertuje raporty JSON na przenośny raport HTML z pulpitem, wykresami, szczegółowym raportem testowym i możliwościami filtrowania.
  • Eksport do Excela: Szczegółowy raport z testów można eksportować do pliku Excel.
  • Obsługa zrzutów ekranu: Przechwytywanie zrzutów ekranu dla nieudanych testów (lub wszystkich testów) w zależności od konfiguracji.
  • Metadane wykonania: Rejestruje informacje o przeglądarce, czasy rozpoczęcia/zakończenia wykonania i ogólny czas trwania.
  • Wykonanie historyczne (opcjonalne): Dostarczenie pliku historii JSON, aby uwzględnić dane historyczne wykonania według zestawu. Jeśli nie dostarczono danych historycznych, raport automatycznie ukryje tę sekcję i wyświetli tylko unikalne błędy.
  • Generowanie zagregowanej historii: JSONReporter zawiera teraz funkcję generowania zagregowanej historii. Używając metody statycznej JSONReporter.generateAggregateHistory({ reportPaths, historyPath, maxHistory }), możesz automatycznie skanować wszystkie pliki raportów JSON (pasujące do wzorca test-report-*.json) w katalogu raportów, agregować wyniki testów i obliczać porównania defektów na podstawie danych historycznych. Zagregowany rekord historii jest następnie dołączany do pliku historii i może być używany przez generator raportów HTML do wizualizacji trendów w czasie.

Installation

Aby zainstalować pakiet wdio-json-html-reporter, wykonaj następujące kroki:

1. Install the package

Uruchom następujące polecenie, aby zainstalować pakiet jako zależność deweloperską:

npm install --save-dev wdio-json-html-reporter

2. Verify installation

Upewnij się, że pakiet został poprawnie zainstalowany, uruchamiając:

npm list wdio-json-html-reporter

Jeśli został zainstalowany poprawnie, powinieneś zobaczyć wynik podobny do:

wdio-json-html-reporter@x.x.x

3. Update WebDriverIO Configuration

Zmodyfikuj swój plik wdio.conf.js lub wdio.conf.ts, aby uwzględnić niestandardowe narzędzie raportujące:

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

Uruchom swój zestaw testów WebDriverIO:

npx wdio run wdio.conf.js

CLI Usage

Oprócz integracji z WebDriverIO, możesz uruchomić generator raportów HTML bezpośrednio z wiersza poleceń za pomocą wbudowanego CLI.

Użycie:

generate-html <inputFolder> <outputFile> [historyFile]

Na przykład, jeśli masz pliki JSON w folderze o nazwie test/reports/json-reports i chcesz wygenerować raport HTML o nazwie test/reports/report.html, możesz uruchomić:

npx wdio-json-html-reporter generate-html test/reports/json-reports test/reports/report.html

Jeśli masz również plik historii (np. test/reports/history.json), dołącz go jako opcjonalny czwarty parametr:

npx wdio-json-html-reporter generate-html test/reports/json-reports test/reports/report.html test/reports/history.json

Uwaga:
Funkcjonalność CLI jest uruchamiana tylko wtedy, gdy przekażesz komendę generate-html jako pierwszy parametr. Podczas uruchamiania przez WebDriverIO (np. za pomocą wdio run wdio.conf.js), logika CLI jest pomijana.

History Option and Aggregated History Generation

Generator raportów HTML obsługuje teraz opcję historii. Pozwala to na dostarczenie pliku JSON zawierającego dane historyczne wykonania, które są łączone z raportem w sekcji "Historical Execution by Suite". Jeśli dostarczono plik historii zawierający prawidłowe dane, raport wyświetli trendy historyczne wraz z interaktywnymi wykresami i akordeonem dla każdego zestawu. Jeśli nie przekazano pliku historii lub jeśli plik nie zawiera żadnych danych o zestawach, raport automatycznie ukryje sekcję historyczną i wyświetli tylko przegląd unikalnych błędów.

Dodatkowo, JSONReporter zawiera teraz funkcję generowania zagregowanej historii. Dzięki metodzie statycznej JSONReporter.generateAggregateHistory({ reportPaths, historyPath, maxHistory }) możesz automatycznie skanować wszystkie pliki raportów JSON (pasujące do wzorca test-report-*.json) w katalogu raportów, agregować wyniki testów (sumowanie liczby testów i łączenie danych zestawów) oraz obliczać porównania defektów przez porównanie z ostatnim zagregowanym rekordem. Nowo wygenerowany rekord historii jest następnie dołączany do określonego pliku historii. Te zagregowane dane historyczne mogą być następnie wykorzystane przez generator raportów HTML do zapewnienia wglądu w historyczne wykonanie na przestrzeni wielu uruchomień testów.

Screenshots

Dashboard

Dashboard

Test Results

Test Results

Screenshots

Screenshots

Filters

Filters

Excel Export

Excel Export

Welcome! How can I help?

WebdriverIO AI Copilot