Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Chaos Testing ist eine Technik, die verwendet wird, um die Ausfallsicherheit von Softwaresystemen zu testen, indem unerwartete Fehler oder Unterbrechungen eingeführt werden. Chaos Testing wird auch als Chaos Engineering bezeichnet. Ziel von Chaostests ist es, Schwachstellen zu identifizieren und die Resilienz Ihrer App zu verbessern.
Chaos Testing basiert auf der Idee, dass Systeme auf unerwartete Weise versagen. Herkömmliche Testmethoden reichen oft nicht aus, wenn es darum geht, diese unerwarteten Fehlermodi aufzudecken. Wenn Sie Chaostests verwenden, simulieren Sie reale Szenarien, z. B. Serverabstürze, Netzwerklatenz oder Ressourcenerschöpfung. Die Simulation dieser Verhaltensweisen hilft, versteckte Probleme und Schwachstellen aufzudecken, die unter normalen Testbedingungen möglicherweise nicht offensichtlich sind.
Hier sind einige wichtige Punkte, die Sie bei Chaostests berücksichtigen sollten:
- Proaktive Vorgehensweise. Anstatt darauf zu warten, dass Fehler auftreten, führt Chaos Testing proaktiv Fehler ein, um zu sehen, wie das System reagiert. Chaostests ermöglichen es Ihnen, Probleme zu identifizieren und zu beheben, bevor sie zu großen Problemen werden.
- Gewinnen Sie Erkenntnisse. Das Ziel von Chaostests ist es, aus Fehlern zu lernen. Durch ihre Einführung können Sie wertvolle Einblicke in das Verhalten des Systems unter Stress erhalten und diese Informationen verwenden, um es zu verbessern.
- Fördern Sie die Teamarbeit. Chaostests sind am effektivsten, wenn Sie sie gemeinsam durchführen. Sie möchten Input von Entwicklern, Testern, dem Betrieb und anderen Beteiligten. Durch die Zusammenarbeit können Sie die wichtigsten Bereiche identifizieren, die getestet werden müssen, und sicherstellen, dass alle informiert sind.
- Fangen Sie klein an und bauen Sie darauf auf. Wenn Sie zum ersten Mal mit Chaostests beginnen, ist es eine gute Idee, klein anzufangen und die Komplexität Ihrer Tests schrittweise zu erhöhen. Indem Sie klein anfangen, können Sie Vertrauen aufbauen und ein besseres Verständnis dafür entwickeln, wie sich das System unter verschiedenen Bedingungen verhält.
Zusammenfassend ist Chaostests eine leistungsstarke Technik, mit der Sie die Resilienz Ihrer Apps verbessern können. Indem Sie proaktiv Fehler einführen und von ihnen lernen, können Sie Probleme identifizieren und beheben, bevor sie zu großen Problemen werden.
Chaostests für die APIs, die Ihre App aufruft
Chaostests konzentrieren sich häufig auf Infrastruktur: Server, Netzwerke und Container. Wenn Ihre App von APIs abhängt, stammen einige der Fehler, die Ihre Benutzer bemerken, von diesen APIs: 500 von einem Zahlungsanbieter, 429 von GitHub oder OpenAI oder eine Antwort, die 8 Sekunden anstelle von 80 Millisekunden dauert. Sie können dieselben Chaostestideen auf diese Abhängigkeiten auf ebene einzelner API-Antworten anwenden:
- Fehler. Geben Sie
5xxFehler nach dem Zufallsprinzip zurück, und überprüfen Sie, ob Ihre App alles sicher Wiederholbare erneut versucht und für den Rest eine nützliche Meldung anzeigt. - Drosselung. Kehren Sie
429mit einerRetry-AfterKopfzeile zurück, und überprüfen Sie, ob Ihre App wartet, bevor sie erneut aufruft. - Latenz. Verzögern Sie Antworten, und überprüfen Sie Ihre Timeouts, Ladesymbole und was geschieht, wenn Antworten nicht mehr in der Reihenfolge eingehen.
| Approach | Was Sie finden | Was Ihnen fehlt |
|---|---|---|
| Auf die Produktion warten | Tatsächliche Ausfälle | Alles, bis ein Benutzer darauf klickt |
| Mocken Sie die API in Ihren Tests, oder lassen Sie Ihren Coding-Agenten den Mock schreiben | Ob die Fehlerzweige ausgeführt werden | Die tatsächlichen Fehlerformate der API, die Wiederholungsrichtlinie Ihres SDK und das Verhalten der laufenden App. Ihre App benötigt außerdem einen Schalter, der nur für Tests vorgesehen ist, um den Mock zu erreichen. |
| Produktivinfrastruktur beeinträchtigen (z. B. einen Dienst beenden oder den Netzwerkverkehr blockieren) | Wie Ihr System mit Ausfällen umgeht | Fehler auf API-Ebene wie ein bestimmter Fehlercode oder ein Retry-After Header |
| Abfangen des tatsächlichen Datenverkehrs ihrer App und Einschleusen von API-Fehlern | Fehler, Drosselung und Latenz für die tatsächlichen URLs in einer von Ihnen gewählten Häufigkeit | Infrastrukturfehler. Verwenden Sie dafür Infrastruktur-Chaos-Tools. |
Probieren Sie es mit Ihrer App aus
Dev Proxy führt API-Fehler in Ihre App ein, während Ihre App weiterhin die tatsächlichen URLs aufruft. Es funktioniert mit jeder Art von Anwendung, in jedem Technologie-Stack, ohne Ihren Code zu ändern. Zum Beispiel können Sie, um die Hälfte der Anfragen an eine API mit zufälligen Fehlern fehlschlagen zu lassen, Meine App mit zufälligen Fehlern testen folgen, und um sie zu verlangsamen, siehe Langsame API-Antworten simulieren. Informationen zum Ausführen der gleichen Tests in Ihrer CI-Pipeline finden Sie unter Verwenden von Dev Proxy in CI/CD.