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 precisar de mais controle detalhado em seus testes, veja Testes Focados com Appium.

Como funciona

  1. Inicie o Escaneamento Automático no início do seu teste
  2. Interaja com seu aplicativo — cada alteração de tela é capturada automaticamente
  3. Pare o escaneamento automático — 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 do aplicativo em teste. Note que appPackage é parte do driver UiAutomator2; você pode já tê-lo configurado.

Iniciar Escaneamento Automático

Antes de iniciar seu conjunto de testes, inicie o Escaneamento Automático chamando a axeStartAutoScanSession API:

beforeAll(async () => { // Start auto scan 
await driver.executeScript('mobile: axeStartAutoScanSession', 
    [{ axeMobileApiKey: 'your-api-key',
    axeProjectId: 'your-devhub-project-id' 
    ... 
    }]); 
})

Parar Escaneamento Automático

Logo antes de o conjunto de testes terminar, chame a axeStopAutoScanSession API para parar o Escaneamento Automático, agregar e enviar os resultados.

await driver.executeScript('mobile: axeStopAutoScanSession', []);
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 várias 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 Escaneamento Automático termina, 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 Escaneamento Automático executa o conjunto completo 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 em Visão Geral das Regras para Android.

Central de Desenvolvedores

A varredura automática faz o upload automático dos seus resultados para a Central de Desenvolvedores Axe. Se você quer salvar os resultados apenas localmente, configure axeUploadResults para false.

Modo Offline

Se você não tem 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 insira 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 string Não URL do servidor Axe personalizado (para nuvem privada ou local)

*Fornecer **ou** credenciais de nuvem (axeMobileApiKey + axeProjectId + opcional axeServerUrl) **ou** uma 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. Está usando uma plataforma de teste 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.