Salvar Resultados da Varredura Localmente

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

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.

note

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.