Varredura Automática com o Driver XCUITest

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

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.

tip

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

Como funciona

  1. Iniciar uma sessão de varredura automática (com suas credenciais)
  2. Navegar através do seu aplicativo — as telas são escaneadas automaticamente
  3. Parar a sessão — um relatório HTML é gerado em ~/AxeDevToolsMobileResults/

Primeiros Passos

Inicie o servidor Appium normalmente:

appium

Configure 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 into
note

Os 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 AutoScan 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 testes baseada em nuvem? Você ainda pode usar o Axe DevTools Mobile para procurar por problemas de acessibilidade: Integrar com Plataformas de Nuvem.