Generazione di report con C#
Questa integrazione produce risultati in un formato compatibile con Axe DevTools reporter.
Creazione di JSON compatibili con il reporter
AxeSelenium.Analyze
restituisce un
Oggetto nella forma giusta per l'uso con il reporter di axe DevTools. Può essere facilmente [azione mancante]
Convertito in una stringa JSON tramite il JsonConvert.SerializeObject
metodo del
JSON.NET
Libreria di conversione JSON.
Ecco un esempio in cui analizziamo una pagina e salviamo i risultati in un file:
var axe = new AxeSelenium(driver);
var results = axe.Analyze();
var jsonResults = JsonConvert.SerializeObject(results, Formatting.Indented);
File.WriteAllText("myResults.json", jsonResults);
Configurazione del report
I metadati del report vengono configurati tramite ReportConfiguration
classe. Controlla il link per visualizzare la sua API.
Una volta che un ReportConfiguration
è stato configurato
Una volta che un ReportConfiguration
l'oggetto è nello stato desiderato, può essere applicato a una scansione in due modi:
-
Può essere applicato a una singola scansione legandola a un singolo oggetto
AxeSelenium
tramite argomenti del costruttorevar reportConfig = ReportConfiguration.GetDefault().TestSuiteName("my suite").UIState("some state"); var axe = new AxeSelenium(driver, reportConfig); var results = axe.Analyze(); Debug.Assert(results.Name == "my suite"); Debug.Assert(results.Id = "some state");
-
Può essere applicato a tutte le scansioni che non vengono sovrascritte individualmente, impostando un'istanza di
ReportConfiguration
come predefinitaReportConfiguration.GetDefault().TestSuiteName("my suite").SetAsDefault() var axe = new AxeSelenium(driver); var results = axe.Analyze(); Debug.Assert(results.Name == "my suite");
Puoi ottenere ReportConfiguration
Istanza che attualmente funge da predefinita chiamando ReportConfiguration.GetDefault()
.
Esempio di codice di generazione
Axe DevTools offre uno strumento integrato per creare automaticamente report da visualizzare da parte dell'utente o da esportare.
L'esempio seguente imposta una configurazione di reporting globale con una AxeReporting
classe contenente un CreateResultsOutput
metodo per creare un file renderizzato JSON
contenente i risultati del report.
Dopo aver completato l'esecuzione del CreateResultsOutput
metodo, il LogResults
metodo viene eseguito per avviare il binario axe DevTools Reporter utilizzando axe-TestCaseName.json
come input per creare un file HTML leggibile dall'utente corrispondente per ciascun JSON
file.
Sono disponibili tre formati per questi report. L'HTML funziona meglio per la visualizzazione da parte degli utenti in ambienti di test locali. Per gli ambienti CI è disponibile un'opzione XML JUnit. Il formato finale è CSV, che consente l'esportazione in numerosi altri programmi.
using System.IO;
using Newtonsoft.Json;
using System.Diagnostics;
using Deque.AxeDevtools.Selenium.Results;
namespace test
{
public class AxeReporting
{
public static void CreateResultsOutput(ReportResults results, string TestCaseName)
{
var jsonResults = JsonConvert.SerializeObject(results, Formatting.Indented);
File.WriteAllText("../../../reports/axe-" + TestCaseName + ".json", jsonResults);
}
public static void LogResults()
{
ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "../../../resources/repoter-cli-win.exe", Arguments = "../../../reports ../../../reports/a11y-reports --format html", };
Process proc = new Process() { StartInfo = startInfo, };
proc.Start();
}
}
}
Vedere anche
- Caricamento dei risultati di accessibilità JSON su axe Reports descrive come caricare i risultati su axe Reports.
- Ottenere una chiave API per axe Reports spiega come ottenere una chiave API per iniziare a utilizzare axe Reports.
- Creazione e filtraggio di report mostra come creare report di accessibilità in formato CSV, XML o HTML a partire dai risultati di accessibilità JSON. Utilizzando questo strumento puoi anche filtrare l'output in base alla gravità.
- Come vengono archiviati i risultati JSON su disco descrive le convenzioni di denominazione dei file per i risultati di accessibilità JSON.