Linor Linor Linor Linor
API-integrationer | API-hantering

Att övervinna vanliga utmaningar i API-testning

API-testningsutmaningar

av Manoj Chaudhary, CTO och SVP of Engineering


För att kontrollera funktionaliteten, tillförlitligheten och säkerheten hos deras applikationsprogrammeringsgränssnitt (API) genomför IT-team en rad olika tester, inklusive funktions-, styrnings-, kaos-, penetrations-, prestanda-, stress- och livslängdsbedömningar. Nedan beskriver vi vanliga utmaningar som team möter när de utför dessa tester och ger våra rekommendationer för att hantera dem.

Utmaning: Att ta sig igenom den första installationen

Att skapa, utveckla och få igång testinfrastruktur kan vara en tidskrävande ansträngning och det kan vara svårt att motivera ditt team under hela processen.

vår rekommendation

Att förklara hur testprocessen lönar sig på lång sikt kan vara nyckeln till att motivera ett testteam. Det är också viktigt att notera hur kritisk denna fas är i API-testning överlag. När du gör den första installationen, tänk noga på hur du kommer att testa API:t och vad dessa tester kräver i din infrastrukturdesign.

Utmaning: Generera och hantera stora volymer testdata

API:er med många parametrar kräver en betydande mängd data (och i vissa fall data med hög kardinalitet) för effektiv testning. Att skapa, underhålla och säkerställa att denna data är återanvändbar kan utgöra en utmaning för testare.

vår rekommendation

Nyckeln till att generera och ställa in testdata är att förstå förfrågnings- och svarsstrukturerna och de associerade API-anropen. Använd datahanteringsverktyg som låter dig förstå dessa kopplingar, sedan maskera, generera och underställa ny data som passar dina testbehov.

Utmaning: Tydlig förståelse för målen för styrningstester

Kritiskt för API:er byggda för molnapplikationer med flera innehavare, styrningstester utförs för att skydda infrastrukturen från överanvändning, bullriga grannar och attacker. API:er har vanligtvis styrningsregler för deras användning (t.ex. lagringspolicyer, hastighetsgränser och nyttolaststorlek), men en frånvaro av kunskap och förståelse relaterad till både API-arkitekturlogik och dessa regler resulterar ofta i osäkerhet om testmål.

vår rekommendation

Skapa väldefinierade och välskrivna styrningsregler; bygg verktyg för ditt team för att justera dem efter behov för att göra testningen enklare och effektivare.

Utmaning: Utföra kaostestning effektivt

Under 2010 skapade Netflix utvecklings- och driftteam denna form av testning när de började flytta traditionell infrastruktur till Amazon Web Services (AWS) molninfrastruktur. Kaostestning, eller kaosteknik, är ett mycket disciplinerat tillvägagångssätt som testar systemets integritet genom att proaktivt simulera och identifiera fel innan de leder till oplanerad driftstopp eller en dålig användarupplevelse. Processen innefattar:

  • Testa att ett system fungerar i ett definierat steady state. Först måste testare identifiera en mätbar systemutgång som indikerar normalt arbetsbeteende. Att skapa infrastrukturen och verktygen för att definiera och mäta ett steady state kan vara komplext, beroende på arkitekturen och omfattningen av de inblandade applikationerna.
  • Testning för att fastställa att ett systems steady state kommer att hålla. Efter att ha etablerat ett stabilt tillstånd avgör testarna om det kommer att fortsätta under kontroll, experimentella och verkliga förhållanden.
  • Testning för minimal påverkan på användarna. Testare bryter eller stör tjänsten för att fastställa negativ påverkan på användarna.
  • Inför kaos. Efter att ha fastställt att ett system fungerar i ett definierat stationärt tillstånd, att det stationära tillståndet håller i sig och att "sprängradien" är innesluten, kör testare sina kaostestapplikationer för att se hur systemet beter sig under särskilda stressförhållanden eller omständigheter (t.ex. serverkraschar, felaktig maskinvara eller avbrutna nätverksanslutningar).

vår rekommendation

Bygg krokar i din applikation och infrastruktur som gör att ditt testteam kan skapa kaos och enkelt få relevanta mätvärden för sprängradien.

Utmaning: Engagera rätt team för penetrationstestning

I penetrationstestning kommer en testare med begränsad kunskap om det specifika API:et att attackera den för att bedöma hotvektorn från ett externt perspektiv. Attacker kan riktas mot hela API:et eller vissa funktioner och processer.

vår rekommendation

Ett internt team kan utföra inledande penetrationstest, men en tredjeparts penetrationstestare bör utföra uppföljande djup penetrationstestning.

Dela med sig:

Har frågor? Vi är här för att hjälpa.

Kontakta oss