Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kaostestning är en teknik som används för att testa motståndskraften hos programvarusystem genom att införa oväntade fel eller störningar. Kaostestning kallas även för kaosteknik. Målet med kaostestning är att identifiera svagheter och förbättra appens motståndskraft.
Kaostestning baseras på tanken att systemen misslyckas på oväntade sätt. Traditionella testmetoder misslyckas ofta med att upptäcka dessa oväntade fellägen. När du använder kaostestning simulerar du verkliga scenarier, till exempel serverkrascher, nätverksfördröjning eller resursöverbelastning. Om du simulerar dessa beteenden kan du exponera dolda problem och svagheter som kanske inte är uppenbara under normala testförhållanden.
Här är några viktiga punkter att tänka på när det gäller kaostestning:
- Var proaktiv. I stället för att vänta på att fel ska inträffa introducerar kaostestning proaktivt fel för att se hur systemet svarar. Med kaostestning kan du identifiera och åtgärda problem innan de blir stora problem.
- Få insikter. Målet med kaostestning är att lära sig av fel. Genom att introducera dem kan du få värdefulla insikter om hur systemet beter sig under stress och använda den informationen för att förbättra systemet.
- Främja ett teamarbete. Kaostestning är mest effektivt när du gör det tillsammans. Du vill ha indata från utvecklare, testare, åtgärder och andra intressenter. Genom att arbeta tillsammans kan du identifiera de viktigaste områdena för att testa och se till att alla informeras.
- Starta litet och bygg upp. När du börjar med kaostestning är det en bra idé att börja litet och gradvis öka komplexiteten i dina tester. När du börjar litet kan du skapa förtroende och utveckla en bättre förståelse för hur systemet beter sig under olika förhållanden.
Sammanfattningsvis är kaostestning en kraftfull teknik som kan hjälpa dig att förbättra apparnas motståndskraft. Genom att proaktivt introducera fel och lära dig av dem kan du identifiera och åtgärda problem innan de blir stora problem.
Kaostestning för API:erna som din app anropar
Kaostestning fokuserar ofta på infrastruktur: servrar, nätverk och containrar. Om din app är beroende av API:er kommer några av de fel som användarna märker från dessa API:er: en 500 från en betalningsleverantör, en 429 från GitHub eller OpenAI eller ett svar som tar 8 sekunder i stället för 80 millisekunder. Du kan använda samma idéer för kaostestning på dessa beroenden på nivån för enskilda API-svar:
- Fel. Returnera
5xxfel slumpmässigt och kontrollera att appen försöker igen det som är säkert att försöka igen och visar ett användbart meddelande för resten. - Strypning. Returnera
429med enRetry-Afterheader och kontrollera att appen väntar innan den anropar igen. - Latens. Fördröjda svar och kontrollera timeouter, spinnare och vad som händer när svaren kommer ur ordning.
| Approach | Det här hittar du | Vad du saknar |
|---|---|---|
| Vänta på produktionen | Faktiska fel | Allt, tills en användare trycker på den |
| Mocka API:t i dina tester eller låt kodningsagenten skriva mock | Huruvida felgrenarna körs | API:ets verkliga felformat, SDK:ns återförsöksprincip och hur appen som körs fungerar. Din app behöver också en testinställning för att nå mocken. |
| Slå ut faktisk infrastruktur (till exempel stoppa en tjänst eller blockera nätverkstrafik) | Så här hanterar ditt system avbrott | Fel på API-nivå som en specifik felkod eller en Retry-After-header |
| Fånga upp appens verkliga trafik och injicera API-fel | Fel, strypning och svarstid på de verkliga URL:erna, med en frekvens som du väljer | Infrastrukturfel. Använd infrastrukturkaosverktyg för dessa. |
Prova det i din app
Dev Proxy introducerar API-fel i din app medan den fortsätter att anropa de verkliga URL:erna. Den fungerar med alla typer av appar, på vilken teknikstack som helst, utan att ändra din kod. Om du till exempel vill få hälften av begärandena till ett API att misslyckas med slumpmässiga fel följer du Testa min app med slumpmässiga fel, och för att göra dem långsamma kan du läsa Simulera långsamma API-svar. Om du vill köra samma tester i din CI-pipeline, se Använd Dev Proxy i CI/CD.