Accelera i tuoi test

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

Tecniche per ridurre il tempo aggiunto da Axe Watcher alla tua suite di test end-to-end

Not for use with personal data

Integrare Axe Watcher nella tua suite di test end-to-end aggiunge tempo perché Watcher analizza ogni pagina visitata dai tuoi test. Se questo overhead diventa un problema, le tecniche seguenti ti permettono di ridurlo senza rinunciare alla copertura di cui ti importa.

Escludere Pagine che Non Hai Bisogno di Testare

Se la tua suite di test visita pagine che non hai bisogno di testare per l'accessibilità (pagine di login, pagine di terze parti, cruscotti amministrativi, flussi di pagamento gestiti da un altro team), puoi saltarle completamente utilizzando 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 Escludere URL dall'analisi per la sintassi dei modelli e gli esempi di corrispondenza.

Limitare l'Analisi a Sezioni Specifiche della Pagina

Invece di analizzare l'intera pagina, utilizza runContext per concentrarti sulla sezione esercitata dal tuo test. Ad esempio, se un test copre solo il modulo di pagamento, non è necessario analizzare la navigazione, il footer o la barra laterale.

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);
important

Quando specifichi elementi da includere tramite runContext, Axe Watcher analizza solo gli elementi corrispondenti. Se un selettore non corrisponde a nulla sulla pagina, nulla verrà analizzato e non verrà catturato alcuno stato della pagina. Verifica attentamente i tuoi selettori prima di distribuire questa configurazione.

Vedi (JavaScript/TypeScript) runContext o (Java) AxeRunContext per ulteriori informazioni.

Disabilitare Regole Costose

Alcune regole di axe-core sono computazionalmente costose. La regola color-contrast , ad esempio, richiede al browser di calcolare il colore reso di ogni elemento di testo visibile sulla pagina, il che può aggiungere tempo significativo su 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);
important

Disabilitare una regola significa che i problemi individuati da quella regola non appariranno nei tuoi risultati. Considera l'idea di eseguire le regole disabilitate in una suite di test separata e dedicata piuttosto che saltarle permanentemente.

Usare runOptions.rules (o runOnly) genera un avviso perché queste impostazioni possono entrare in conflitto con la configurazione Axe globale della tua organizzazione. Vedi Uso delle opzioni di esecuzione 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

Per impostazione predefinita, Watcher analizza automaticamente ogni pagina visitata dai tuoi test. 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 disabilitata, chiami analyze() esplicitamente dove hai bisogno di un risultato e utilizzi start() / stop() per delimitare sezioni della tua suite di test in cui vuoi che l'analisi automatica riprenda.

Vedi Controlla Le Tue Scansioni per istruzioni complete ed esempi.

Esegui i test in parallelo

Se la tua infrastruttura di test supporta l'esecuzione in parallelo, eseguire il tuo suite di test con più operai riduce il tempo totale del wall-clock. Watcher supporta esecutori di test paralleli; devi solo assicurarti che ogni operaio condivida lo stesso buildID diverso da null in modo che i loro risultati siano combinati anziché sovrascritti.

Consulta Esecuzione di test in parallelo per le istruzioni di configurazione.

Sommario

Tecnica Ideale per Compromesso
Escludi pagine Pagine che il tuo team non possiede o non ha bisogno di testare Pagine importanti potrebbero essere erroneamente trascurate
Limita sezioni di 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 Quelle regole non vengono eseguite in questo suite di test
Modalità manuale Suite di test che visitano molte pagine irrilevanti per i test di accessibilità Richiede espliciti analyze() / start() / stop() chiamate nel codice di test
Test parallelo Team con infrastruttura CI che supporta operai paralleli Richiede la coordinazione buildID tra i lavoratori