Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Chaostesten is een techniek die wordt gebruikt om de veerkracht van softwaresystemen te testen door onverwachte storingen of verstoringen te introduceren. Chaostesten wordt ook wel chaos-engineering genoemd. Het doel van chaostests is het identificeren van zwakke punten en het verbeteren van de tolerantie van uw app.
Chaostesten zijn gebaseerd op het idee dat systemen op onverwachte manieren falen. Traditionele testmethoden schieten vaak tekort in het blootleggen van deze onverwachte storingsmodi. Wanneer u chaostests gebruikt, simuleert u scenario's uit de echte wereld, zoals servercrashes, netwerklatentie of uitputting van bronnen. Het simuleren van dit gedrag helpt om verborgen problemen en zwakke punten bloot te leggen die onder normale testomstandigheden misschien niet duidelijk zijn.
Hier volgen enkele belangrijke punten om rekening te houden met chaostests:
- Wees proactief. In plaats van te wachten tot er fouten optreden, introduceert chaostesten proactief fouten om te zien hoe het systeem reageert. Met chaostests kunt u problemen identificeren en oplossen voordat ze grote problemen worden.
- Krijg inzicht. Het doel van chaostests is om te leren van fouten. Door ze in te voeren, kunt u waardevolle inzichten krijgen in hoe het systeem zich gedraagt onder stress en deze informatie gebruiken om het te verbeteren.
- Bevorder een teaminspanning. Chaostests zijn het meest effectief als u het samen doet. Je wilt input van ontwikkelaars, testers, operations en andere belanghebbenden. Door samen te werken, kunt u de belangrijkste gebieden identificeren om te testen en ervoor zorgen dat iedereen op de hoogte is.
- Begin klein en bouw op. Wanneer u voor het eerst begint met chaostests, is het een goed idee om klein te beginnen en geleidelijk de complexiteit van uw tests te vergroten. Als u klein begint, kunt u vertrouwen opbouwen en een beter inzicht krijgen in hoe het systeem zich gedraagt onder verschillende omstandigheden.
Kortom, chaos testen is een krachtige techniek waarmee u de tolerantie van uw apps kunt verbeteren. Door proactief fouten te introduceren en ermee te leren, kunt u problemen identificeren en oplossen voordat ze belangrijke problemen worden.
Chaos testen voor de API's die uw app aanroept
Chaostests zijn vaak gericht op infrastructuur: servers, netwerken en containers. Als uw app afhankelijk is van API's, zijn sommige van de fouten die uw gebruikers merken afkomstig van deze API's: een 500 van een betalingsprovider, een 429 van GitHub of OpenAI, of een reactie die 8 seconden duurt in plaats van 80 milliseconden. U kunt dezelfde chaostestideeën toepassen op deze afhankelijkheden, op het niveau van afzonderlijke API-antwoorden:
- Fouten.
Geef willekeurig
5xxfouten terug en controleer of uw app opnieuw probeert wat veilig opnieuw kan worden geprobeerd en voor de rest een nuttig bericht weergeeft. - Snelheidsbeperking. Retourneer
429met eenRetry-Afterkoptekst en controleer of uw app wacht voordat deze opnieuw wordt aangeroepen. - Latency. Vertraag reacties en controleer uw time-outs, spinners en wat er gebeurt wanneer antwoorden buiten de volgorde aankomen.
| Approach | Wat u vindt | Wat u mist |
|---|---|---|
| Wacht op productie | Echte storingen | Alles, totdat een gebruiker erop klikt |
| Mock de API in je tests, of laat je codeeragent de mock schrijven | Of uw foutvertakkingen worden uitgevoerd | De werkelijke foutformaten van de API, het beleid voor opnieuw proberen van uw SDK en hoe de actieve app zich gedraagt. Uw app heeft ook een testswitch nodig om de mock te bereiken. |
| Echte infrastructuur verstoren (bijvoorbeeld een service beëindigen of netwerkverkeer blokkeren) | Hoe uw systeem omgaat met storingen | Fouten op API-niveau, zoals een specifieke foutcode of een Retry-After header |
| Het echte verkeer van uw app onderscheppen en API-fouten injecteren | Fouten, snelheidsbeperking en latentie voor de werkelijke URL's, met een snelheid die u kiest | Infrastructuurstoringen. Gebruik infrastructuur-chaostools daarvoor. |
Probeer het in je app
Dev Proxy introduceert API-fouten in uw app terwijl uw app de echte URL's blijft aanroepen. Het werkt met elk type app, op elke technologiestack, zonder uw code te wijzigen. Als u bijvoorbeeld de helft van de aanvragen naar een API wilt laten mislukken met willekeurige fouten, volgt u Mijn app testen met willekeurige fouten en om ze te vertragen, raadpleegt u Trage API-antwoorden simuleren. Zie Dev Proxy gebruiken in CI/CD om dezelfde tests uit te voeren in uw CI-pijplijn.