Escaneamento Automático com o Driver UIAutomator2
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.
Se você precisar de um controle mais granular em seus testes, veja Testes Focados com Appium.
Como funciona
- Inicie Auto Scan no início do seu teste
- Interaja com seu aplicativo — toda mudança de tela é capturada automaticamente
- 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:
appiumConfigurar 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 intoOs 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.
