Escaneamento Automático com o Driver UIAutomator2

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

Visão Geral

O escaneamento automático monitora continuamente seu aplicativo Android em busca de problemas de acessibilidade enquanto seus testes são executados. Em vez de escanear uma tela por vez, ele captura instantâneos de acessibilidade a cada mudança de interface e os processa todos ao final.

tip

Se você precisar de um controle mais granular em seus testes, veja Testes Focados com Appium.

Como funciona

  1. Inicie Auto Scan no início do seu teste
  2. Interaja com seu aplicativo — toda mudança de tela é capturada automaticamente
  3. Pare auto scan — os resultados são processados e transferidos para sua máquina local

Os resultados são salvos em build/AxeDevToolsMobileResults/ no diretório do seu projeto.

Começando

Inicie o servidor Appium como de costume:

appium

Configurar Seus Testes

A partir dos seus scripts de automação Appium, adicione as capacidades necessárias para Axe DevTools Mobile.

Nome Tipo Descrição
automationName String Defina para 'AxeUiAutomator2' para utilizar o driver com Axe DevTools Mobile embutido para escaneamentos de acessibilidade.
appPackage String O nome do pacote da aplicação em teste. Note que appPackage é parte do driver UiAutomator2; você pode já tê-lo configurado.

Iniciar Escaneamento Automático

Antes de iniciar sua suíte de testes, inicie o Auto Scan chamando a API axeStartAutoScanSession:

beforeAll(async () => { // Start auto scan 
await driver.executeScript('mobile: axeStartAutoScanSession', [{ 
  axeMobileApiKey: 'your-api-key',
  axeProjectId: 'your-devhub-project-id',
  axeAccountURL: 'https://axe.deque.com',
  axeHtmlReportPath: './reports/accessibility' // optional (local dir; default 'build/AxeDevToolsMobileResults')
  ... 
  }]); 
})

Parar Escaneamento Automático

Pouco antes de a suíte de testes terminar, chame a API axeStopAutoScanSession para parar o Auto Scan e agregar e carregar os resultados.

// Stop - the report is pulled to axeHtmlReportPath on the local machine
const result = await driver.executeScript('mobile: axeStopAutoScanSession');

// result.localDirectory -> local directory the report was saved into
note

Os trechos de código acima estão usando JavaScript. Veja Exemplos de Código de Escaneamento Automático com UIAutomator2 para exemplos mais completos em múltiplas linguagens de programação.

Interpretando Resultados

Resumo do Console

Uma vez que o conjunto de testes termine, você pode encontrar um resumo na janela do console onde o servidor Appium está rodando.

---- Axe DevTools Mobile Accessibility Summary ----
Scan 1:
  Screen: Home Page
  Issues: 6
  Issues by rule:
    - TouchSizeWcag: 3
    - LabelAtFront: 1
    - LabelInName: 1
    - FocusableText: 1
    
Scan 35:
  Screen: Wikipedia Alpha
  Issues: 5
  Issues by rule:
    - LabelAtFront: 1
    - LabelInName: 1
    - TouchTargetSpacing: 1
    - TouchSizeWcag: 1
    - ColorContrast: 1
    
Total Scans: 35
❌ Total Issues: 123
---------------------------------------------------

Arquivos de Saída

Quando a sessão de Auto Scan para, um relatório HTML é gerado em build/AxeDevToolsMobileResults/. O relatório contém violações de acessibilidade, aprovações e recomendações para cada tela capturada durante a sessão.

Suporte ao Escaneamento Automático

Regras

O Auto Scan executa todo o conjunto de regras do Axe com exceção de ScreenOrientation e todas as regras experimentais (por exemplo, NestedActiveControl, NestedElementName, InaccessibleAction). Encontre informações detalhadas sobre o que verificamos no Visão Geral das Regras para Android.

Central de Desenvolvedores

O Auto Scan carrega automaticamente seus resultados para o Axe Developer Hub. Se você só quiser salvar os resultados localmente, configure axeUploadResults para false.

Modo Offline

Se você não tiver credenciais de nuvem, use a variante offline do driver com uma chave de licença offline. Instale @axe-devtools/axe-appium3-uiautomator2-driver-offline e passe axeOfflineLicenseKey ao iniciar a sessão.

Referência de Configuração

Propriedades

Parâmetro Tipo Obrigatório Descrição
axeUploadResults booleano Não Enviar resultados para a Central de Desenvolvedores
axeMobileApiKey string Sim* Sua chave de API do Axe DevTools Mobile
axeProjectId string Não ID do projeto para organizar os resultados
axeOfflineLicenseKey string Sim* Chave de licença para o modo offline (alternativa às credenciais de nuvem)
axeServerUrl (Descontinuado) string Sim URL de backend personalizada (por exemplo, axe.company.com), apenas para nuvem privada/on-premises
axeAccountURL string Sim URL de backend personalizada (por exemplo, axe.company.com), apenas para nuvem privada/on-premises
axeHtmlReportPath string Não Diretório de saída configurável pelo usuário para o relatório HTML e resumo. Padrão para build/AxeDevToolsMobileResults

*Forneça credenciais de nuvem **ou** (axeMobileApiKey + axeProjectId + axeAccountURL) **ou** um axeOfflineLicenseKey.

Desativar Animações

Obtenha os resultados mais precisos e abrangentes da varredura automática desativando a animação. Isso garantirá que as telas estejam completamente renderizadas quando capturadas. Se as animações não estiverem desativadas, você pode notar:

  • Varreduras duplicadas que você acredita que deveriam ter sido eliminadas
  • Varreduras com capturas de tela mostrando um estado transitório
  • Uma taxa de captura de tela significativamente menor do que você esperava

Adicione o seguinte sob capabilities:

capabilities: {
    // ...existing capabilities
    'appium:disableWindowAnimation': true, // disables window animations
  }

Resolução de Problemas

Se as varreduras não estiverem aparecendo na Central de Desenvolvedores, você deve verificar seus logs em busca de dicas do que pode estar errado ou seguir esta lista de verificação.

  • Certifique-se de que está usando a variável correta para sua chave de API/Licença e ID do Projeto
  • Verifique o tamanho dos seus arquivos de saída. O upload para a Central de Desenvolvedores falhará se o tamanho de qualquer arquivo de resultado for maior que 20MB, embora todos os resultados ainda sejam salvos localmente e exibidos no relatório HTML local.

O que vem a seguir?

Você pode ver seus resultados no Axe Developer Hub. Saiba como integrar o Axe DevTools Mobile no seu pipeline de CI/CD. Usando uma plataforma de testes baseada em nuvem? Você ainda pode usar o Axe DevTools Mobile para procurar problemas de acessibilidade. Veja Testes Automatizados em Plataformas em Nuvem com Appium.