Gerando Relatórios com C#
Gerando saída JSON compatível com repórteres usando Axe DevTools para Web em C#
Esta integração produz resultados em um formato compatível com o repórter Axe DevTools.
Criando JSON compatível com repórter
AxeSelenium.Analyze retorna um
objeto no formato adequado para uso com o repórter Axe DevTools. Ele pode ser facilmente
convertido em uma string JSON através do método JsonConvert.SerializeObject do
biblioteca de conversão JSON JSON.NET.
Aqui está um exemplo onde analisamos uma página e salvamos os resultados em um arquivo:
var axe = new AxeSelenium(driver);
var results = axe.Analyze();
var jsonResults = JsonConvert.SerializeObject(results, Formatting.Indented);
File.WriteAllText("myResults.json", jsonResults);Configurando o relatório
Os metadados do relatório são configurados via a classe ReportConfiguration. Confira o link para ver sua API.
Uma vez que um objeto ReportConfiguration está no estado desejado, ele pode ser aplicado a uma varredura de duas maneiras:
-
Ele pode ser aplicado a uma única varredura ligando-o a um único objeto
AxeSeleniumvia argumentos do construtorvar 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"); -
Ele pode ser aplicado a todas as varreduras que não são individualmente sobrepostas, configurando uma instância de
ReportConfigurationcomo padrãoReportConfiguration.GetDefault().TestSuiteName("my suite").SetAsDefault() var axe = new AxeSelenium(driver); var results = axe.Analyze(); Debug.Assert(results.Name == "my suite");
Você pode obter a instância de ReportConfiguration
atualmente servindo como padrão chamando ReportConfiguration.GetDefault().
Exemplo de código de geração
O Axe DevTools oferece uma ferramenta integrada para criar automaticamente relatórios para visualização do usuário ou para exportação.
O exemplo a seguir configura uma configuração de relatório global com uma classe AxeReporting contendo um método CreateResultsOutput para criar um arquivo JSON renderizado contendo os resultados do relatório.
Após a execução do método CreateResultsOutput, o método LogResults é executado em seguida para lançar o binário do Axe DevTools Reporter usando o axe-TestCaseName.json como entrada para criar um arquivo HTML correspondente legível pelo usuário para cada arquivo JSON.
Existem três formatos disponíveis para esses relatórios. O HTML funciona melhor para a visualização do usuário em ambientes de teste locais. Para ambientes de CI, uma opção JUnit XML está disponível. O formato final é CSV, que permite a exportação para várias outras ferramentas.
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();
}
}
}Veja Também
- Enviando Resultados de Acessibilidade JSON para o axe Reports descreve como enviar seus resultados para o axe Reports.
- Obtendo uma Chave de API do axe Reports explica como obter uma chave de API para começar a usar o axe Reports.
- Criando e Filtrando Relatórios mostra como você pode criar relatórios de acessibilidade em CSV, XML ou HTML a partir dos seus resultados de acessibilidade em JSON. Você também pode filtrar sua saída por gravidade usando esta ferramenta.
- Como Resultados JSON são Armazenados no Disco descreve as convenções de nomenclatura de arquivos para resultados de acessibilidade em JSON.
- Usando a CLI para Enviar Resultados de Acessibilidade para o axe Developer Hub mostra como você pode enviar seus arquivos de resultados
.jsonpara axe Developer Hub.
