Zelfstudie over API-testen: Wat is API-testautomatisering?
Wat is API-testen?
API-testen is een softwaretesttype dat Application Programming Interfaces (API's) valideert. Het doel van API-testen is om de functionaliteit, betrouwbaarheid, prestaties en beveiliging van de programmeerinterfaces te controleren. Bij API-testen gebruikt u in plaats van standaard gebruikersinvoer (toetsenbord) en -uitvoer software om oproepen naar de API te sturen, uitvoer te krijgen en de respons van het systeem te noteren. API-testen verschillen sterk van GUI-testen en concentreren zich niet op het uiterlijk en de beleving van een applicatie. Het concentreert zich voornamelijk op de bedrijfslogicalaag van de softwarearchitectuur.
voor achtergrond, API (Applicatie Programmeerinterface) is een computerinterface die communicatie en gegevensuitwisseling tussen twee afzonderlijke softwaresystemen mogelijk maakt. Een softwaresysteem dat een API uitvoert, omvat verschillende functies/subroutines die een ander softwaresysteem kan uitvoeren. API definieert verzoeken die kunnen worden gedaan, hoe verzoeken moeten worden ingediend, gegevensformaten die kunnen worden gebruikt, enz., tussen twee softwaresystemen.
Opzetten van API Testautomatiseringsomgeving
API-automatisering Testen vereist een applicatie die via een API kan communiceren. Om een API te testen, moet u dit doen
- Gebruik Testing Tool om de API aan te sturen
- Schrijf uw eigen code om de API te testen
Enkele punten om op te merken
- API-testen is anders dan andere soorten softwaretests, omdat GUI niet beschikbaar is, en toch moet u een initiële omgeving opzetten die API aanroept met een vereiste set parameters en vervolgens het testresultaat onderzoeken.
- Het opzetten van een testomgeving voor API-automatiseringstests lijkt daarom wat complex.
- Database en server moeten worden geconfigureerd volgens de applicatievereisten.
- Zodra de installatie is voltooid, moet de API-functie worden aangeroepen om te controleren of die API werkt.
Soorten uitvoer van een API
Een uitvoer van API zou kunnen zijn
- Elk type gegevens
- Status (zeg geslaagd of mislukt)
- Roep een andere API-functie aan.
Laten we een voorbeeld bekijken van elk van de bovenstaande typen in deze API-testtutorial
Elk type gegevens
Voorbeeld: Er is een API-functie die twee gehele getallen bij elkaar optelt.
Long add(int a, int b)
De getallen moeten als invoerparameters worden opgegeven. De uitvoer moet een optelling zijn van twee gehele getallen. Deze uitvoer moet worden geverifieerd met een verwachte uitkomst.
Er moet worden gebeld zoals
add (1234, 5656)
Uitzonderingen moeten worden afgehandeld als het aantal de limiet van gehele getallen overschrijdt.
Status (zeg geslaagd of mislukt)
Overweeg de onderstaande API-functie –
- Slot()
- Ontgrendelen()
- Verwijderen()
Ze retourneren elke waarde zoals True (in geval van succes) of false (in geval van een fout) als uitvoer.
een nauwkeuriger Testgeval zou zijn dat u de functies in elk script kunt aanroepen en later kunt controleren op wijzigingen in de database of de GUI van de toepassing.
Aanroepen van een andere API / Event
In dit geval roepen we een van de API-functies aan, die op zijn beurt een andere functie zal aanroepen.
De eerste API-functie kan bijvoorbeeld worden gebruikt voor het verwijderen van een opgegeven record in de tabel en deze functie roept op zijn beurt een andere functie aan om de database te VERFRISSEN.
Testcases voor API-testen:
Testgevallen van API-testen zijn gebaseerd op
- Retourwaarde op basis van invoervoorwaarde: het is relatief eenvoudig te testen, omdat invoer kan worden gedefinieerd en resultaten kunnen worden geverifieerd
- Geeft niets terug: Wanneer er geen retourwaarde is, moet het gedrag van de API op het systeem worden gecontroleerd
- Activeer een andere API/event/interrupt: Als een uitvoer van een API een gebeurtenis of interrupt activeert, moeten die gebeurtenissen en interrupt-listeners worden bijgehouden
- Gegevensstructuur bijwerken: Het bijwerken van de datastructuur zal een bepaalde uitkomst of effect hebben op het systeem, en dat moet worden geverifieerd
- Bepaalde bronnen wijzigen: Als de API-oproep bepaalde bronnen wijzigt, moet deze worden gevalideerd door toegang te krijgen tot de betreffende bronnen
API-testaanpak
API-testaanpak is een vooraf gedefinieerde strategie of een methode die het QA-team zal uitvoeren om de API-testen uit te voeren nadat de build gereed is. Bij deze tests is de broncode niet inbegrepen. De API-testaanpak helpt om de functionaliteiten, testtechnieken, invoerparameters en de uitvoering van testgevallen beter te begrijpen.
De volgende punten helpen de gebruiker bij het uitvoeren van een API-testaanpak:
- De functionaliteit van het API-programma begrijpen en de reikwijdte van het programma duidelijk definiëren
- Pas testtechnieken toe zoals gelijkwaardigheidsklassen, grenswaardeanalyse en foutschatting en schrijf testcases voor de API
- Invoerparameters voor de API moeten op de juiste manier worden gepland en gedefinieerd
- Voer de testgevallen uit en vergelijk de verwachte en werkelijke resultaten.
Verschil tussen API-testen en unit-testen
Testen van een eenheid | API-testen |
---|---|
Ontwikkelaars voeren het uit | Testers voeren het uit |
Afzonderlijke functionaliteit wordt getest | De end-to-end functionaliteit wordt getest |
Een ontwikkelaar heeft toegang tot de broncode | Testers hebben geen toegang tot de broncode |
UI-testen zijn ook hierbij betrokken | Alleen API-functies worden getest |
Alleen basisfunctionaliteiten worden getest | Alle functionele problemen worden getest |
Beperkt van omvang | Breder van opzet |
Meestal uitgevoerd vóór het inchecken | Testuitvoering nadat de build is gemaakt |
API testen
API-automatiseringstesten moeten ten minste de volgende testmethoden omvatten, naast het gebruikelijke SDLC-proces
- Ontdekkingstesten: De testgroep moet de reeks oproepen die in de API zijn gedocumenteerd handmatig uitvoeren, bijvoorbeeld door te verifiëren dat een specifieke bron die door de API wordt vrijgegeven, kan worden vermeld, aangemaakt en verwijderd indien nodig
- Bruikbaarheidstesten: Met deze tests wordt geverifieerd of de API functioneel en gebruiksvriendelijk is. En integreert API ook goed met een ander platform?
- Beveiligingstesten: Deze tests omvatten welk type authenticatie vereist is en of gevoelige gegevens via HTTP of beide worden gecodeerd
- Geautomatiseerde testen: API-testen moeten uitmonden in het creëren van een set scripts of een tool die kan worden gebruikt om de API regelmatig uit te voeren
- Documentatie: Het testteam moet ervoor zorgen dat de documentatie adequaat is en voldoende informatie biedt om met de API te kunnen communiceren. Documentatie moet deel uitmaken van het eindproduct
Best practices van API-testen:
- API Testgevallen moeten worden gegroepeerd op testcategorie
- Bovenaan elke test moet u de verklaringen opnemen van de API's die worden aangeroepen.
- Parameterselectie moet expliciet worden vermeld in de testcase zelf
- Geef prioriteit aan API-functieaanroepen, zodat testers deze gemakkelijk kunnen testen
- Elk testgeval moet zo op zichzelf staand en onafhankelijk van afhankelijkheden mogelijk zijn
- Vermijd ‘test chaining’ in uw ontwikkeling
- Er moet speciale aandacht worden besteed aan het verwerken van eenmalige oproepfuncties zoals Verwijderen, Venster sluiten, enz...
- Oproepsequentiebepaling moet worden uitgevoerd en goed gepland
- Om volledige testdekking te garanderen, maakt u API-testcases voor alle mogelijke invoercombinaties van de API.
Soorten bugs die door API-tests worden gedetecteerd
- Kan foutcondities niet netjes afhandelen
- Ongebruikte vlaggen
- Ontbrekende of dubbele functionaliteit
- Betrouwbaarheidsproblemen. Moeilijkheid om verbinding te maken en een antwoord te krijgen API.
- Veiligheidsproblemen
- Problemen met meerdere threads
- Prestatieproblemen. De API-responstijd is erg hoog.
- Onjuiste fouten/waarschuwing voor een beller
- Onjuiste verwerking van geldige argumentwaarden
- Antwoordgegevens zijn niet correct gestructureerd (JSON of XML)
API-testautomatisering uitvoeren
1) KlaarAPI
KlaarAPI is een toonaangevend hulpmiddel voor functionele, beveiligings- en belastingtests van RESTful, SOAP, GraphQL en andere webservices. In één intuïtief platform krijgt u drie krachtige tools: ReadyAPI Test, ReadyAPI Performance en ReadyAPI Virtualization. Met deze tools kunt u functionele, beveiligings- en prestatie-/belastingtests uitvoeren. U kunt ook API- en webservices nabootsen met onze robuuste virtualisatietool. Bovendien kunt u uw CI/CD-pijplijn tijdens elke bouw.
Belangrijkste kenmerken
- ReadyAPI kan in elke omgeving worden geïntegreerd.
- Het heeft een Smart Assertion-functie waarmee snel bulkbevestigingen tegen honderden eindpunten kunnen worden gemaakt.
- Native ondersteuning voor Git, Docker, Jenkins, Azure, Etc.
- Ondersteunt Command-line voor geautomatiseerd testen.
- Ondersteunt parallelle uitvoering van functionele tests en taakwachtrijen.
- Promohergebruik van tes-code
- Verwijdert afhankelijkheden tijdens testen en ontwikkelen.
Gratis proefperiode van 14 dagen (geen creditcard vereist)
De volgende tutorials bieden een gedetailleerde handleiding voor het automatiseren van API-tests.
Daarnaast zijn er andere tools voor API-testen. Controleer ze hier
Uitdagingen van API-testen
Uitdagingen bij API-testen zijn onder meer:
- De belangrijkste uitdagingen bij het testen van web-API's zijn: Parametercombinatie, parameterselectie en oproepvolgorde
- Er is geen GUI beschikbaar om de applicatie te testen, wat maakt het moeilijk is om invoerwaarden te geven
- Het valideren en verifiëren van de output in een ander systeem is een beetje moeilijk voor testers
- De selectie en categorisering van parameters moeten bekend zijn bij de testers
- Afhandelingsfunctie voor uitzonderingen moet worden getest
- Codeerkennis is noodzakelijk voor testers
Conclusie
API bestaat uit een reeks klassen/functies/procedures die de bedrijfslogicalaag vertegenwoordigen. Als de API niet goed wordt getest, kan dit niet alleen problemen veroorzaken in de API-applicatie, maar ook in de aanroepende applicatie. Het is een onmisbare test in software-engineering.