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 um controle mais granular em seus testes, veja Testes Direcionados com Appium.
Como funciona
- Iniciar uma sessão de varredura automática (com suas credenciais)
- Navegar através do 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 Axe DevTools Mobile embutido para executar varreduras de acessibilidade. |
| bundleId | String |
O identificador do pacote do aplicativo em teste. Observe que bundleId é parte do driver XCUITest; você pode já tê-lo configurado. |
Iniciar Varredura Automática
Antes de iniciar seu conjunto 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 Varredura Automática
Logo antes do conjunto de testes terminar, chame a API axeStopAutoScanSession para parar o Auto Scan e agregar e enviar 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 usam JavaScript. Veja Exemplos de Código de Varredura Automática com XCUITest para exemplos mais completos em várias 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 Auto Scan para, 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
O Auto Scan 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 envia automaticamente seus resultados para o Axe Developer Hub. Se você quiser apenas salvar os resultados 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 | Envie resultados para o painel (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 (Obsoleto) |
string | Sim | URL de backend personalizado (por exemplo, axe.company.com), apenas para nuvem privada/on-prem |
axeAccountURL |
string | Sim | URL de backend personalizado (por exemplo, axe.company.com), apenas para nuvem privada/on-prem |
axeHtmlReportPath |
string | Não | Diretório de saída configurável pelo usuário para o relatório HTML e resumo. Padrões para ??? |
Forneça **ou** credenciais de nuvem (axeMobileApiKey + axeProjectId+ axeAccountURL) **ou** um axeOfflineLicenseKey.
Melhores Práticas
Desativar Animações
Obtenha os resultados mais precisos e abrangentes do Auto Scan desativando a animação. Isso garantirá que as telas estejam completamente renderizadas quando capturadas. Adicione o seguinte sob 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 maior que 20MB, embora todos os resultados ainda sejam salvos localmente e exibidos no relatório HTML local.
- Verifique os logs. Procure por mensagens
AutoScanno 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 testes baseada em nuvem? Você ainda pode usar o Axe DevTools Mobile para procurar por problemas de acessibilidade: Integrar com Plataformas de Nuvem.
