Varredura Automática com o Driver XCUITest
Visão Geral
A Varredura Automática captura automaticamente instantâneos de acessibilidade conforme você navega pelo seu aplicativo iOS. Em vez de acionar manualmente varreduras em cada tela, você inicia uma sessão de varredura automática, interage com o aplicativo e para a sessão para gerar um relatório.
Se você precisar de mais controle nos seus testes, veja Testes Direcionados com Appium.
Como funciona
- Iniciar uma sessão de varredura automática (com suas credenciais)
- Navegar pelo seu aplicativo — as telas são escaneadas automaticamente
- Parar a sessão — um relatório HTML é gerado em
~/AxeDevToolsMobileResults/
Primeiros Passos
Inicie o servidor Appium normalmente:
appiumConfigure Seus Testes
A partir dos seus scripts de automação Appium, adicione as capacidades necessárias para o Axe DevTools Mobile.
| Nome | Tipo | Descrição |
|---|---|---|
| automationName | String |
Defina como 'AxeXCUITest' para utilizar o driver com o Axe DevTools Mobile incorporado para realizar varreduras de acessibilidade. |
| bundleId | String |
O identificador do pacote do aplicativo em teste. Note que bundleId é uma parte do driver XCUITest; você pode já ter isso configurado. |
Iniciar Varredura Automática
Antes de iniciar sua suíte de testes, inicie a Varredura Automática chamando a axeStartAutoScanSession API:
beforeAll(async () => { // Start auto scan
await driver.executeScript('mobile: axeStartAutoScanSession',
[{ axeMobileApiKey: 'your-api-key',
axeProjectId: 'your-devhub-project-id'
...
}]);
})Parar Varredura Automática
Pouco antes de a suíte de testes terminar, chame a axeStopAutoScanSession API para parar a Varredura Automática e agregar e enviar os resultados.
await driver.executeScript('mobile: axeStopAutoScanSession', []);Os trechos de código acima estão usando JavaScript. Veja Exemplos de Código de Varredura Automática com XCUITest para exemplos mais completos em múltiplas linguagens de programação.
Interpretando Resultados
Resumo do console
Um resumo do console semelhante ao seguinte é impresso quando a suíte de testes termina:
---- Axe DevTools Mobile Accessibility Summary ----
Scan 1:
Screen: HomeScreen
Issues: 3
Issues by rule:
- ColorContrast: 2
- TouchTargetSize: 1
Scan 2:
Screen: SettingsScreen
Issues: 0
Total Scans: 2
❌ Total Issues: 3
----------------------------------------------------Uma execução limpa mostrará Axe Clean - 0 Issues Found 🎉 no console.
Arquivos de saída
Quando a sessão de Varredura Automática é parada, um relatório HTML é gerado em ~/AxeDevToolsMobileResults/. O relatório contém violações de acessibilidade, aprovações e recomendações para cada tela capturada durante a sessão.
Suporte à Varredura Automática
Regras
A Varredura Automática executa o conjunto completo de regras Axe com a exceção de ScreenOrientation, SupportsDynamicType, e todas as regras experimentais. Encontre informações detalhadas sobre o que verificamos no Visão Geral das Regras para iOS.
Hub do Desenvolvedor
O Auto Scan carrega automaticamente seus resultados para o Axe Developer Hub. Se você deseja salvar os resultados apenas localmente, defina axeUploadResults para false.
Modo Offline
Se você não possui credenciais de nuvem, use uma chave de licença offline em vez disso:
// JavaScript example
await driver.execute('mobile: axeStartAutoScanSession', {
axeOfflineLicenseKey: 'YOUR_OFFLINE_LICENSE_KEY'
});
// ... navigate through the app ...
await driver.execute('mobile: axeStopAutoScanSession', {});Referência de Configuração
Propriedades
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
axeUploadResults |
Booleano | Opcional | Carregar resultados para o dashboard (padrão: true) |
axeMobileApiKey |
Texto | Obrigatório* | Chave API para escaneamento em nuvem |
axeProjectId |
Texto | Opcional | ID do projeto para organizar os resultados |
axeOfflineLicenseKey |
Texto | Obrigatório* | Chave de licença para modo offline (alternativa às credenciais de nuvem) |
axeServerUrl |
Texto | Opcional | URL do servidor Axe DevTools Mobile |
Forneça **ou** credenciais de nuvem (axeMobileApiKey + axeProjectId+ opcional axeServerUrl) **ou** uma axeOfflineLicenseKey.
Melhores Práticas
Desativar Animações
Obtenha os resultados mais precisos e abrangentes do Auto Scan desativando as animações. Isso garantirá que as telas estejam totalmente renderizadas quando capturadas. Adicione o seguinte em capabilities:
capabilities: {
// ...existing capabilities
'appium:reduceMotion': true, // enables iOS "Reduce Motion" accessibility setting
}Solução de Problemas
- Vendo resultados localmente, mas não no Developer Hub? O upload para o Developer Hub falha se o tamanho de qualquer arquivo de resultado for superior a 20 MB, embora todos os resultados ainda sejam salvos localmente e mostrados no relatório HTML local.
- Verifique os logs. Procure por
AutoScanmensagens no console.
O que vem a seguir?
Você pode visualizar seus resultados no Axe Developer Hub. Aprenda como integrar o Axe DevTools Mobile em seu pipeline de CI/CD. Usando uma plataforma de teste baseada em nuvem? Você ainda pode usar o Axe DevTools Mobile para procurar problemas de acessibilidade: Integrar com Plataformas de Nuvem.
