Door Manoj Chaudhary, CTO en SVP Engineering
Om de functionaliteit, betrouwbaarheid en beveiliging van hun application programming interfaces (API's) te controleren, voeren IT-teams uiteenlopende tests uit, waaronder functionele, governance-, chaos-, penetratie-, prestatie-, stress- en duurzaamheidsbeoordelingen. Hieronder schetsen we vijf van de meest voorkomende uitdagingen op het gebied van API-testen waarmee teams te maken krijgen en bieden we onze aanbevelingen om deze aan te pakken.
1. Door de initiële installatie komen
Het creëren, ontwikkelen en opzetten van testinfrastructuur kan een tijdrovende bezigheid zijn en het kan lastig zijn om je team gedurende het hele proces gemotiveerd te houden.
Onze aanbeveling
Uitleggen hoe het testproces op de lange termijn zijn vruchten afwerpt, kan cruciaal zijn om een testteam te motiveren. Het is ook belangrijk om te benadrukken hoe cruciaal deze fase is voor API-testen in het algemeen. Denk bij het uitvoeren van de initiële installatie goed na over hoe u de API gaat testen en wat die tests vereisen in uw infrastructuurontwerp.
2. Het genereren en beheren van grote volumes testdata
API's met veel parameters vereisen een aanzienlijke hoeveelheid data (en in sommige gevallen data met een hoge cardinaliteit) voor effectieve tests. Het creëren, onderhouden en waarborgen dat deze data herbruikbaar is, kan een uitdaging vormen voor testers.
Onze aanbeveling
De sleutel tot het genereren en instellen van testgegevens is het begrijpen van de aanvraag- en responsstructuren en de bijbehorende API-aanroepen. Gebruik databeheertools waarmee u deze verbindingen kunt begrijpen en vervolgens nieuwe gegevens kunt maskeren, genereren en subsetten die aansluiten bij uw testbehoeften.
3. Een duidelijk begrip van de doelstellingen voor governance-testen
Governancetests zijn van cruciaal belang voor API’s die zijn ontwikkeld voor cloudtoepassingen met meerdere gebruikers, en worden uitgevoerd om de infrastructuur te beschermen tegen overmatig gebruik, ‘noisy neighbors’ en aanvallen. API’s hebben doorgaans governance-regels voor hun usage (bijvoorbeeld opslagbeleid, tarieflimieten en payloadgrootte), maar een gebrek aan kennis en inzicht in zowel de architectuurlogica van de API als deze regels leidt vaak tot onduidelijkheid over de testdoelstellingen.
Onze aanbeveling
Teams kunnen deze uitdaging op het gebied van API-testen verzachten door duidelijke en goed geschreven governance-regels op te stellen; bouw hulpprogramma's voor je team om deze naar wens aan te passen om het testen eenvoudiger en efficiënter te maken.
4. Effectief uitvoeren van chaostests
In 2010 creëerden de ontwikkelings- en operatieteams van Netflix deze vorm van testen toen ze traditionele infrastructuur begonnen te verplaatsen naar de cloudinfrastructuur van Amazon Web Services (AWS). Chaostesten, of chaos engineering, is een uiterst gedisciplineerde benadering die de systeemintegriteit test door proactief storingen te simuleren en te identificeren voordat deze leiden tot ongeplande uitvaltijd of een slechte gebruikerservaring.
Het proces omvat:
- Testen of een systeem werkt in een gedefinieerde stabiele toestand. Eerst moeten testers een meetbare systeemuitvoer identificeren die normaal werkgedrag aangeeft. Het creëren van de infrastructuur en tools voor het definiëren en meten van een stabiele toestand kan complex zijn, afhankelijk van de architectuur en de omvang van de betrokken applicaties.
- Testen om te bepalen of de stabiele toestand van een systeem behouden blijft. Nadat een stabiele toestand is bereikt, bepalen testers of deze behouden blijft onder controle-, experimentele en reële omstandigheden.
- Testen op minimale impact op gebruikers. Testers breken of verstoren de dienstverlening om de negatieve impact op gebruikers te bepalen.
- Chaos introduceren. Nadat is vastgesteld dat een systeem in een gedefinieerde stabiele toestand werkt, dat deze stabiele toestand aanhoudt en dat de “ontploffingsradius” beperkt blijft, voeren testers hun chaostestapplicaties uit om te zien hoe het systeem zich gedraagt onder specifieke stressomstandigheden of omstandigheden (bijv. servercrashes, defecte hardware of verbroken netwerkverbindingen).
Onze aanbeveling
Bouw hooks in uw applicatie en infrastructuur waarmee uw testteam chaos kan creëren en eenvoudig relevante metrieken over de blast radius kan verkrijgen.
5. Het juiste team inschakelen voor penetratietesten
Bij penetration testing valt een tester met beperkte vakkennis van de specifieke API deze aan om de dreigingsvector vanuit een extern perspectief te beoordelen. Aanvallen kunnen gericht zijn op de gehele API of op bepaalde functies en processen.
Onze aanbeveling
Een intern team kan een eerste penetratietest uitvoeren, maar een externe penetratietester moet de daaropvolgende diepgaande penetratietest uitvoeren.
Overwin de uitdagingen bij het testen van API’s met Jitterbit API Manager
Als onderdeel van het geïntegreerde Harmony-platform, Jitterbit API Manager vereenvoudigt het testen van API’s door inzicht te bieden in de volledige levenscyclus – van ontwerp tot prestatiebewaking – en samenwerking mogelijk te maken via een gecentraliseerd management console.
In Jitterbit API Manager wordt de API-documentatie die op basis van de OpenAPI-definities wordt gegenereerd, automatisch weergegeven als interactieve Swagger UI-documentatie, waardoor teams eindpunten in realtime kunnen testen. Meer informatie over API Manager of neem contact op met een productspecialist om vraag een gratis demo aan.