Acelere Seus Testes

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

Técnicas para reduzir o tempo que o Axe Watcher adiciona ao seu conjunto de testes de ponta a ponta

Not for use with personal data

Integrar o Axe Watcher ao seu conjunto de testes de ponta a ponta adiciona tempo porque o Watcher analisa cada página que seus testes visitam. Se esse overhead se tornar um problema, as técnicas abaixo permitem que você o reduza sem abrir mão da cobertura que considera importante.

Excluir Páginas Que Você Não Precisa Testar

Se o seu conjunto de testes visita páginas que você não precisa testar para acessibilidade (páginas de login, páginas de terceiros, painéis de administração, fluxos de checkout de outra equipe), você pode ignorá-las totalmente usando excludeUrlPatterns. Pular páginas inteiras é a maneira mais eficaz de reduzir o tempo de teste.

JavaScript ou TypeScript:

axe: {
  excludeUrlPatterns: [ 'https://example.com/login*', 'https://example.com/admin/**' ]
}

Java:

AxeWatcherOptions options = new AxeWatcherOptions();
options.setExcludeUrlPatterns(new String[] {
    "https://example.com/login*",
    "https://example.com/admin/**"
});

Veja Excluir URLs da Análise para a sintaxe de padrões e exemplos de correspondência.

Limitar Análise a Seções Específicas da Página

Em vez de analisar a página inteira, use runContext para se concentrar na seção que seu teste exercita. Por exemplo, se um teste cobre apenas o formulário de checkout, não há necessidade de analisar a navegação, rodapé ou barra lateral.

JavaScript ou TypeScript:

axe: {
  runContext: {
    include: '.checkout-form',
    exclude: '.site-navigation'
  }
}

Java:

AxeRunContext context = new AxeRunContext()
    .setInclude(Arrays.asList(".checkout-form"))
    .setExclude(Arrays.asList(".site-navigation"));

AxeWatcherOptions options = new AxeWatcherOptions();
options.setRunContext(context);
important

Quando você especifica elementos para incluir via runContext, o Axe Watcher analisa somente os elementos correspondentes. Se um seletor não corresponder a nada na página, nada será analisado e nenhum estado da página será capturado. Verifique seus seletores antes de implantar esta configuração.

Veja (JavaScript/TypeScript) runContext ou (Java) AxeRunContext para mais informações.

Desativar Regras Dispendiosas

Algumas regras do axe-core são computacionalmente dispendiosas. A regra color-contrast, por exemplo, requer que o navegador calcule a cor renderizada de cada elemento de texto visível na página, o que pode adicionar tempo significativo em páginas com muito conteúdo.

Você pode desativar regras específicas usando runOptions.rules:

JavaScript ou TypeScript:

axe: {
  runOptions: {
    rules: {
      'color-contrast': { enabled: false }
    }
  }
}

Java:

Map<String, AxeRuleOptions> rules = new HashMap<>();
rules.put("color-contrast", new AxeRuleOptions().setEnabled(false));

AxeRunOptions runOptions = new AxeRunOptions();
runOptions.setRules(rules);

AxeWatcherOptions options = new AxeWatcherOptions();
options.setRunOptions(runOptions);
important

Desativar uma regra significa que os problemas detectados por essa regra não aparecerão nos seus resultados. Considere executar regras desativadas em um conjunto de testes separado e dedicado, em vez de pular permanentemente.

Usar runOptions.rules (ou runOnly) gera um aviso porque essas configurações podem conflitar com a configuração global do Axe da sua organização. Veja Usando runOptions com runOnly ou Rules.

Veja (JavaScript/TypeScript) runOptions ou (Java) AxeRunOptions para mais informações.

Usar o Modo Manual para Controlar Quais Testes Analisam Páginas

Por padrão, o Watcher analisa automaticamente cada página que seus testes visitam. Se a maior parte do seu conjunto de testes visita páginas que você não precisa verificar, você pode desativar a análise automática globalmente e habilitá-la apenas nos testes que precisam.

JavaScript ou TypeScript:

axe: {
  autoAnalyze: false
}

Java:

AxeWatcherOptions options = new AxeWatcherOptions();
options.setAutoAnalyze(false);

Com a análise automática desativada, você chama analyze() explicitamente onde precisar de um resultado, e usa start() / stop() para delimitar seções do seu conjunto de testes onde deseja que a análise automática seja retomada.

Veja Controle Seus Escaneamentos para instruções completas e exemplos.

Executar Testes em Paralelo

Se sua infraestrutura de testes suporta execução em paralelo, rodar seu conjunto de testes com múltiplos trabalhadores reduz o tempo total de execução. O Watcher suporta testes em paralelo; você só precisa garantir que cada trabalhador compartilhe o mesmo buildID não-nulo para que seus resultados sejam combinados em vez de sobrescritos.

Veja Executando Testes em Paralelo para instruções de configuração.

Resumo

Técnica Melhor para Compromisso
Excluir páginas Páginas que sua equipe não possui ou não precisa testar Páginas importantes podem ser esquecidas por engano
Limitar seções de página Páginas grandes onde apenas parte é relevante para seu teste Problemas fora das seções selecionadas não são encontrados
Desativar regras dispendiosas Equipes descobrem que certas regras dispendiosas não se aplicam à sua situação Essas regras não são executadas neste conjunto de testes
Modo manual Conjuntos de testes que visitam muitas páginas irrelevantes para testes de acessibilidade Requer chamadas explícitas analyze() / start() / stop() no código de teste
Teste em paralelo Equipes com infraestrutura de CI que suporta trabalhadores paralelos Requer coordenação de buildID entre trabalhadores