Salvar Resultados da Varredura Localmente
Quando você salva os resultados da varredura localmente, pode usar o resultado JSON para integrar métricas de acessibilidade em diferentes ferramentas de relatórios. Você também pode criar um relatório em HTML para compartilhar por e-mail ou chat, a fim de notificar sua equipe sobre a saúde da acessibilidade da sua execução de teste.
Salvar resultados localmente é suportado apenas em testes automatizados.
Salvar e Compartilhar Resultados
Use o seguinte código para salvar os resultados dos testes no dispositivo físico real ou emulador como um arquivo .json. O parâmetro "prefix" será o início do nome do arquivo em que você deseja salvar o resultado.
axe.scan()?.saveResultToLocalStorage("prefix")Nota: Você pode alterar o nome da varredura antes de salvar o resultado.
Gerar um Relatório e Resumo em HTML
Ao usar o plugin Axe DevTools Gradle, adicionar uma chamada para generateHtmlReportAndSummary uma vez por classe de teste irá gerar um relatório localmente em seu dispositivo. Esta chamada de API elimina quaisquer arquivos de resultados armazenados e analisa todos os escaneamentos acumulados desde o início da sessão de teste (ou desde a última chamada ao método) para gerar um relatório. Quando sua suíte de testes terminar, o plugin Gradle automaticamente enviará relatórios para o diretório build/reports do seu projeto.
Se preferir salvar seus resultados em um diretório diferente, você pode indicar isso no bloco de configuração do plugin do seu arquivo build.gradle.
axeDevTools {
axeMobileApiKey = "AXE_API_KEY"
axeProjectId = "DEVHUB_PROJECT_ID"
axeAutoScanMode = false
axeHtmlReportPath =
"User/Desktop/reports/AxeDevToolsMobileResults"
axeAccountUrl = "https://axe.deque.com"
class SampleTest {
@Before
fun before() {
axe.startScanSession(API_KEY, PROJECT_ID, OPTIONAL_CUSTOM_URL)
}
@Test
fun test_desired_screen() {
// navigateToScreen(DESIRED_SCREEN.title)
val results = axe.scan()?.serializedResult?.axeRuleResults
// assertForRule(results, "FocusableText", 12, 8, 1)
}
companion object {
val axe: AxeDevTools = AxeDevTools()
@JvmStatic
@AfterClass
fun afterClass() {
axe.generateHtmlReportAndSummary("optional_name")
}
}
}Esses relatórios incluirão apenas capturas de tela e falhas de regras. Para relatórios mais detalhados que incluam a hierarquia de visualização, regras marcadas como passadas ou incompletas e detalhes sobre falhas de regras, consulte a seção abaixo para aprender como utilizar o Axe DevTools Reporter CLI.
Usar Resultados para Relatórios Detalhados
Aproveite os resultados do escaneamento para relatórios movendo os arquivos JSON para a pasta de build do seu projeto. Depois, você pode utilizar o Axe DevTools Reporter CLI para construir um relatório HTML a partir de um conjunto de escaneamentos. Alternativamente, você pode acessar os arquivos de resultados programaticamente para integrar métricas de acessibilidade com ferramentas de relatórios internas.
Adicione o seguinte script ao arquivo build.gradle do seu aplicativo, abaixo do bloco android{...}, e certifique-se de que ele não esteja dentro de outra tarefa Gradle. Adicione o nome do pacote do seu aplicativo na variável packageName.
O script abaixo irá copiar os relatórios gerados a partir do salvamento dos resultados localmente no seu emulador ou dispositivo e movê-los para o diretório de relatórios da sua pasta de build.
def reportsDirectory = "$buildDir/reports/androidTests/connected/axe"
def packageName = "your.app.package.name.here"
def createAndroidFolderDirectoryTask = task('createAndroidFolderDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'mkdir', '-p', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases'
}
def clearAndroidDirectoryTask = task('clearAndroidDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases'
}
def fetchAndroidFolderAxeReportsTask = task('fetchAndroidFolderAxeReportsTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'pull', '/storage/emulated/0/Android/data/' + packageName + '/files/AxeTestCases', reportsDirectory
dependsOn {
createAndroidFolderDirectoryTask
}
finalizedBy {
clearAndroidDirectoryTask
}
doFirst {
new File(reportsDirectory).mkdirs()
}
}
def createDirectoryTask = task('createDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'mkdir', '-p', '/storage/emulated/0/Documents/AxeTestCases'
}
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
finalizedBy {
fetchAndroidFolderAxeReportsTask
}
}
def fetchAxeReportsTask = task('fetchAxeReportsTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'pull', '/storage/emulated/0/Documents/AxeTestCases', reportsDirectory
dependsOn {
createDirectoryTask
}
finalizedBy {
clearDirectoryTask
}
doFirst {
new File(reportsDirectory).mkdirs()
}
}
tasks.configureEach { task ->
if (task.name == 'connectedDebugAndroidTest') {
task.finalizedBy {
fetchAxeReportsTask
}
}
}Suporte em Plataformas de Teste na Nuvem
Salvar um resultado localmente não funcionará como esperado em Plataformas de Teste em Nuvem. Se você precisar de suporte para Plataformas de Teste em Nuvem, por favor, envie uma solicitação para helpdesk@deque.com ou para support.deque.com.
