Acelere Seus Testes
Técnicas para reduzir o tempo que o Axe Watcher adiciona à sua suíte de testes de ponta a ponta
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);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);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 |
