Impostare i Timeout
Questa guida descrive come configurare le impostazioni di timeout in Axe Watcher per JavaScript, TypeScript e Java
Quando esegui test di accessibilità con Axe Watcher, potresti riscontrare dei timeout, specialmente su pagine complesse, su reti lente o in ambienti CI/CD con risorse limitate. Questa guida spiega come configurare i valori di timeout per garantire che i tuoi test vengano completati con successo.
Anche se l'implementazione Java di Watcher non supporta i timeout personalizzati, ci sono diverse strategie che puoi seguire per ridurre la necessità di timeout. Vedi Soluzioni alternative per i problemi di timeout in Java.
Comprensione dei Timeout di Watcher
Axe Watcher comunica con i server di Deque durante l'esecuzione dei test ed esegue operazioni di analisi che possono variare in durata a seconda della complessità della pagina. Quattro operazioni hanno timeout configurabili:
analyze: Tempo consentito per analizzare l'accessibilità di una pagina (predefinito: 5000ms)flush: Tempo consentito per inviare i risultati all'Axe Developer Hub (predefinito: 5000ms)start: Tempo consentito per riprendere l'analisi automatica (predefinito: 2000ms)stop: Tempo consentito per interrompere l'analisi automatica (predefinito: 5000ms)
Se incontri errori di timeout con Watcher, vedrai un messaggio simile a:
Error: Watcher could not send results to the server. To resolve this problem, adjust your `timeout.flush` property within your configuration or see [Troubleshooting](https://docs.deque.com/devtools-for-web/wa-troubleshooting) for more troubleshooting guidance.Configurazione per JavaScript e TypeScript
Per i progetti JavaScript e TypeScript che utilizzano il pacchetto @axe-core/watcher, puoi configurare i timeout attraverso la proprietà timeout nel tuo oggetto AxeConfiguration.
Configurazione Base del Timeout
const config = playwrightConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID,
timeout: {
analyze: 10000, // 10 seconds
flush: 15000, // 15 seconds
start: 5000, // 5 seconds
stop: 10000 // 10 seconds
}
}
});È necessario specificare solo i timeout che vuoi sovrascrivere; i valori omessi utilizzano le impostazioni predefinite.
Considerazioni Importanti per JavaScript/TypeScript
I valori di timeout di Watcher sono indipendenti dai timeout del tuo framework di test. Se stai riscontrando errori di timeout, potresti dover regolare entrambi. L'esempio seguente mostra come impostare il timeout di Playwright per adattarlo a quello di Watcher.
// In your Watcher config
timeout: {
analyze: 45000,
flush: 20000
}
// Adjust the timeout for a single Playwright test.
test('basic functionality test', async ({ page }) => {
test.setTimeout(45000);
// ...
});Se concatenando comandi, assicurati che il tempo massimo complessivo del tuo test tenga conto della durata totale delle operazioni.
Configurazione di Java
Java Watcher attualmente non supporta i timeout personalizzati. I valori di timeout sono impostati nell'implementazione Java ai valori iniziali di JavaScript/TypeScript.
Soluzioni alternative per i problemi di timeout in Java
Anche se non puoi configurare direttamente i timeout in Java, considera questi approcci:
-
Ottimizza la complessità della pagina: Se le pagine vanno costantemente in timeout durante l'analisi, considera di suddividere i test in casi più piccoli e mirati che analizzano meno stati della pagina.
-
Verifica le condizioni di rete: Assicurati una connettività di rete stabile tra il tuo ambiente di test e i server di Deque, in particolare nelle pipeline CI/CD.
-
Contatta il supporto Deque: Se i problemi di timeout persistono, contatta il team di supporto di Deque, poiché le versioni future di Java Watcher potrebbero includere timeout configurabili.
Quando Aumentare i Timeout
Considera di aumentare i valori di timeout quando:
- Testi pagine con strutture DOM ampie (migliaia di elementi)
- Esegui test in ambienti CI/CD con risorse limitate
- Testi su connessioni di rete ad alta latenza
- Analizzi pagine con DOM complessi
- Esegui più processi di test in parallelo
Risoluzione dei Problemi di Timeout
Se stai riscontrando errori di timeout:
-
Identifica quale operazione sta andando in timeout: Il messaggio di errore indica se è
analyze,flush,startostop. -
Controlla per altri problemi: I timeout a volte possono indicare problemi sottostanti come problemi di rete, proxy errati o pagine che non si caricano completamente.
-
Rivedi la guida alla risoluzione dei problemi: Consulta Risoluzione dei problemi per ulteriori indicazioni.
Riepilogo
| Linguaggio | Configurazione dei Timeout | Valori predefiniti |
|---|---|---|
| JavaScript/TypeScript | Completamente configurabile tramite l'oggetto timeout |
analisi: 5000ms, svuotamento: 5000ms, avvio: 2000ms, arresto: 5000ms |
| Java | Non configurabile attualmente | Impostato sui valori predefiniti di JavaScript/TypeScript: analisi: 5000ms, svuotamento: 5000ms, avvio: 2000ms, arresto: 5000ms |
Per i progetti JavaScript e TypeScript, configurare timeout appropriati assicura un'esecuzione affidabile dei test in diversi ambienti. Gli utenti Java dovrebbero concentrarsi sull'ottimizzazione della struttura dei test e delle condizioni di rete.
