Accelera i Tuoi Test
Tecniche per ridurre il tempo che Axe Watcher aggiunge alla tua suite di test end-to-end
Integrare Axe Watcher nella tua suite di test end-to-end aggiunge tempo perché Watcher analizza ogni pagina che i tuoi test visitano. Se questo sovraccarico diventa un problema, le tecniche che seguono ti permettono di ridurlo senza sacrificare la copertura che ti interessa.
Escludi le Pagine che Non Devi Testare
Se la tua suite di test visita pagine che non devi testare per l'accessibilità (pagine di login, pagine di terzi, dashboard amministrative, flussi di checkout gestiti da un altro team), puoi saltarle completamente usando excludeUrlPatterns. Saltare intere pagine è il modo più efficace per ridurre il tempo di test.
JavaScript o 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/**"
});Vedi Escludi URL dall'Analisi per la sintassi dei pattern e gli esempi di corrispondenza.
Limita l'Analisi a Sezioni Specifiche della Pagina
Invece di analizzare l'intera pagina, utilizza runContext per concentrarti sulla sezione che il tuo test esercita. Ad esempio, se un test copre solo il modulo di checkout, non c'è bisogno di analizzare la navigazione, il footer o la sidebar.
JavaScript o 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 specifichi gli elementi da includere tramite runContext, Axe Watcher analizza solo gli elementi corrispondenti. Se un selettore non corrisponde a nulla sulla pagina, niente sarà analizzato e nessuno stato della pagina verrà catturato. Controlla attentamente i tuoi selettori prima di distribuire questa configurazione.
Vedi (JavaScript/TypeScript) runContext o (Java) AxeRunContext per ulteriori informazioni.
Disabilita Regole Costose
Alcune regole di axe-core sono computazionalmente costose. La regola color-contrast, ad esempio, richiede al browser di calcolare il colore visualizzato di ogni elemento di testo visibile sulla pagina, il che può aggiungere un tempo significativo alle pagine ricche di contenuti.
Puoi disabilitare regole specifiche usando runOptions.rules:
JavaScript o 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);Disabilitare una regola significa che i problemi riscontrati da quella regola non appariranno nei tuoi risultati. Considera di eseguire le regole disabilitate in una suite di test separata e dedicata piuttosto che saltarle permanentemente.
L'utilizzo di runOptions.rules (o runOnly) genera un avviso perché queste impostazioni possono entrare in conflitto con la configurazione globale di Axe della tua organizzazione. Vedi Utilizzo di runOptions con runOnly o Rules.
Vedi (JavaScript/TypeScript) runOptions o (Java) AxeRunOptions per ulteriori informazioni.
Usa la Modalità Manuale per Controllare Quali Test Analizzano le Pagine
Di default, Watcher analizza automaticamente ogni pagina che i tuoi test visitano. Se la maggior parte della tua suite di test visita pagine che non devi controllare, puoi disattivare l'analisi automatica a livello globale e abilitarla solo nei test che ne hanno bisogno.
JavaScript o TypeScript:
axe: {
autoAnalyze: false
}Java:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setAutoAnalyze(false);Con l'analisi automatica disattivata, chiami analyze() esplicitamente dove hai bisogno di un risultato e usi start() / stop() per delimitare le sezioni della tua suite di test dove vuoi che l'analisi automatica riprenda.
Vedi Controlla le Tue Scansioni per istruzioni e esempi completi.
Esegui i Test in Parallelo
Se la tua infrastruttura di test supporta l'esecuzione in parallelo, eseguire la tua suite di test con più worker riduce il tempo totale di esecuzione. Watcher supporta i runner di test paralleli; è sufficiente assicurarsi che ogni worker condivida lo stesso buildID non nullo affinché i loro risultati siano combinati anziché sovrascritti.
Vedi Esecuzione dei Test in Parallelo per le istruzioni di configurazione.
Riassunto
| Tecnica | Ideale per | Compromesso |
|---|---|---|
| Escludi pagine | Pagine che il tuo team non possiede o non ha bisogno di testare | Pagine importanti potrebbero essere erroneamente ignorate |
| Limita sezioni della pagina | Pagine grandi dove solo una parte è rilevante per il tuo test | I problemi al di fuori delle sezioni selezionate non vengono trovati |
| Disabilita regole costose | I team scoprono che certe regole costose non si applicano alla loro situazione | Queste regole non vengono eseguite in questa suite di test |
| Modalità manuale | Suite di test che visitano molte pagine irrilevanti per i test di accessibilità | Richiede chiamate esplicite analyze() / start() / stop() nel codice di test |
| Test parallelo | Team con infrastruttura CI che supporta lavoratori paralleli | Richiede il coordinamento di buildID tra i lavoratori |
