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 à sua suíte de testes de ponta a ponta

Not for use with personal data

Integrar o Axe Watcher à sua suíte de testes de ponta a ponta adiciona tempo, pois o Watcher analisa cada página que seus testes visitam. Se esse tempo adicional se tornar um problema, as técnicas abaixo permitem reduzi-lo sem abrir mão da cobertura que você considera importante.

Exclua Páginas que Você Não Precisa Testar

Se a sua suíte de testes visita páginas que você não precisa testar quanto à acessibilidade (páginas de login, páginas de terceiros, painéis de administração, fluxos de checkout de responsabilidade de outra equipe), você pode ignorá-las completamente usando excludeUrlPatterns. Ignorar 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 Exclua URLs da Análise para a sintaxe de padrões e exemplos de correspondência.

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

Em vez de analisar a página inteira, use runContext para focar 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, o rodapé ou a 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 implementar essa configuração.

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

Desative Regras Dispendiosas

Algumas regras do axe-core são computacionalmente dispendiosas. A regra ", "context": "paragraph color-contrast , por exemplo, exige 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 problemas capturados por essa regra não aparecerão em seus resultados. Considere executar regras desativadas em uma suíte de testes dedicada em vez de pulá-las permanentemente.

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

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

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

Por padrão, o Watcher analisa automaticamente todas as páginas que seus testes visitam. Se a maioria da sua suíte 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 precisa de um resultado, e usa start() / stop() para delimitar seções da sua suíte de testes onde você deseja que a análise automática seja retomada.

Veja Controle Suas Análises para instruções completas e exemplos.

Executar Testes em Paralelo

Se a sua infraestrutura de testes suporta execução paralela, executar sua suíte de testes com múltiplos trabalhadores reduz o tempo total de execução. O Watcher suporta executores de testes paralelos; você só precisa garantir que cada trabalhador compartilhe o mesmo buildID não-nulo para que seus resultados sejam combinados em vez de sobrescritos.

Consulte 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 erroneamente omitidas
Limitar seções da página Páginas grandes onde apenas parte é relevante para o 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 nesta suíte de testes
Modo manual Suítes de testes que visitam muitas páginas irrelevantes para testes de acessibilidade Requer analyze() explícita start() / stop() de chamadas no código de teste
Testes paralelos Equipes com infraestrutura CI que suporta trabalhadores paralelos Requer coordenação buildID entre trabalhadores