Timeouts festlegen
Diese Anleitung beschreibt, wie Sie Timeout-Einstellungen in Axe Watcher für JavaScript, TypeScript und Java konfigurieren
Beim Ausführen von Barrierefreiheitstests mit Axe Watcher können Timeouts auftreten, insbesondere bei komplexen Seiten, langsamen Netzwerken oder in CI/CD-Umgebungen mit begrenzten Ressourcen. Diese Anleitung erklärt, wie Sie Timeout-Werte konfigurieren, um sicherzustellen, dass Ihre Tests erfolgreich abgeschlossen werden.
Obwohl die Java-Implementierung von Watcher keine benutzerdefinierten Timeouts unterstützt, gibt es mehrere Strategien, die Sie befolgen können, um den Bedarf an Timeouts zu reduzieren. Siehe Lösungen für Java-Timeout-Probleme.
Verständnis von Watcher-Timeouts
Axe Watcher kommuniziert während der Testläufe mit den Servern von Deque und führt Analyseoperationen durch, deren Dauer je nach Seitenkomplexität variieren kann. Vier Operationen haben konfigurierbare Timeouts:
analyze: Zeit für die Analyse der Barrierefreiheit einer Seite (Standard: 5000 ms)flush: Zeit zum Senden der Ergebnisse an das Axe Developer Hub (Standard: 5000 ms)start: Zeit für die Wiederaufnahme der automatischen Analyse (Standard: 2000 ms)stop: Zeit für das Pausieren der automatischen Analyse (Standard: 5000 ms)
Wenn Sie Timeout-Fehler mit Watcher feststellen, erscheint eine Nachricht ähnlich der folgenden:
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.Konfiguration für JavaScript und TypeScript
Für JavaScript- und TypeScript-Projekte, die das @axe-core/watcher-Paket verwenden, können Sie Timeouts über die timeout-Eigenschaft in Ihrem AxeConfiguration-Objekt konfigurieren.
Grundlegende Timeout-Konfiguration
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
}
}
});Sie müssen nur die Timeouts angeben, die Sie überschreiben möchten; alle ausgelassenen Werte verwenden ihre Standardwerte.
Wichtige Überlegungen für JavaScript/TypeScript
Die Timeout-Werte von Watcher sind unabhängig von den Timeouts Ihres Testframeworks. Wenn Sie Timeout-Fehler sehen, müssen Sie möglicherweise beide anpassen. Das folgende Beispiel zeigt, wie Sie das Timeout von Playwright so einstellen, dass es zu dem von Watcher passt.
// 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);
// ...
});Wenn Sie Befehle verketten, stellen Sie sicher, dass Ihr Gesamt-Timeout die Gesamtdauer der Operationen berücksichtigt.
Java-Konfiguration
Die Java Watcher unterstützt derzeit keine benutzerdefinierten Timeouts. Die Timeout-Werte sind in der Java-Implementierung auf die anfänglichen JavaScript/TypeScript-Werte festgelegt.
Lösungen für Java-Timeout-Probleme
Während Sie in Java keine Timeouts direkt konfigurieren können, sollten Sie folgende Ansätze in Betracht ziehen:
-
Seitenkomplexität optimieren: Wenn Seiten während der Analyse regelmäßig Timeout erreichen, sollten Sie Tests in kleinere, fokussiertere Testfälle aufteilen, die weniger Seitenzustände analysieren.
-
Netzwerkbedingungen überprüfen: Stellen Sie sicher, dass eine stabile Netzwerkverbindung zwischen Ihrer Testumgebung und den Servern von Deque, insbesondere in CI/CD-Pipelines, besteht.
-
Deque-Support kontaktieren: Wenn Timeout-Probleme bestehen bleiben, kontaktieren Sie das Support-Team von Deque, da zukünftige Versionen von Java Watcher möglicherweise konfigurierbare Timeouts beinhalten.
Wann Timeouts erhöht werden sollten
Erwägen Sie eine Erhöhung der Timeout-Werte, wenn:
- Seiten mit großen DOM-Strukturen (tausende von Elementen) getestet werden
- Tests in ressourcenbeschränkten CI/CD-Umgebungen durchgeführt werden
- Tests über Verbindungen mit hoher Latenz durchgeführt werden
- Seiten mit komplexen DOMs analysiert werden
- Mehrere parallele Testprozesse durchgeführt werden
Fehlerbehebung bei Timeout-Fehlern
Wenn Sie Timeout-Fehler erleben:
-
Identifizieren Sie, welche Operation ein Timeout verursacht: Die Fehlermeldung gibt an, ob es sich um
analyze,flush,startoderstophandelt. -
Nach anderen Problemen suchen: Timeouts können manchmal auf zugrunde liegende Probleme wie Netzwerkprobleme, falsch konfigurierte Proxys oder Seiten, die nicht vollständig geladen werden, hinweisen.
-
Das Fehlerbehebungsleitfaden prüfen: Siehe Fehlerbehebung für weitere Anleitungen.
Zusammenfassung
| Sprache | Timeout-Konfiguration | Standardwerte |
|---|---|---|
| JavaScript/TypeScript | Vollständig konfigurierbar über timeout Objekt |
analyze: 5000ms, flush: 5000ms, start: 2000ms, stop: 5000ms |
| Java | Derzeit nicht konfigurierbar | Auf die Standardwerte von JavaScript/TypeScript eingestellt: analyze: 5000ms, flush: 5000ms, start: 2000ms, stop: 5000ms |
Für JavaScript- und TypeScript-Projekte gewährleistet die Konfiguration geeigneter Zeitüberschreitungen eine zuverlässige Testausführung über verschiedene Umgebungen hinweg. Java-Nutzer sollten sich auf die Optimierung der Teststruktur und der Netzwerkbedingungen konzentrieren.
