Zelfstudie over API-testen: wat is API-testautomatisering? Hoe te testen

Voordat we naar de zelfstudie API-testen gaan, laten we het eerst begrijpen

Wat is API?

API (Application Programming Interface) is een computerinterface die communicatie en gegevensuitwisseling tussen twee afzonderlijke softwaresystemen mogelijk maakt. Softwaresysteem dat een API uitvoert, bevat verschillende functies / subroutines die een ander softwaresysteem kan uitvoeren. API definieert verzoeken die kunnen worden gedaan, hoe verzoeken moeten worden gedaan, gegevensformaten die kunnen worden gebruikt, enz. Tussen twee softwaresystemen.

Wat is API-testen?

API-TESTING 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-tests gebruikt u in plaats van de standaard gebruikersinvoer (toetsenbord) en -uitgangen, software om oproepen naar de API te sturen, uitvoer te krijgen en de reactie van het systeem op te schrijven. API-tests verschillen sterk van GUI-tests en concentreren zich niet op het uiterlijk en het gevoel van een applicatie. Het concentreert zich voornamelijk op de bedrijfslogica-laag van de softwarearchitectuur.

API-automatisering Testen vereist een applicatie die kan worden gebruikt via een API. Om een ​​API te testen, moet u

  • Gebruik de testtool om de API te besturen
  • Schrijf uw eigen code om de API te testen

In deze zelfstudie over API-testen leert u meer over-

  • Opzetten van API-testomgeving
  • Typen uitvoer van een API
  • Testcases voor API-testen
  • Aanpak van API-testen
  • Verschil tussen API-testen en Unit-testen
  • API testen
  • Best practices voor API-testen
  • Typen bugs die door API-tests worden gedetecteerd
  • API-testautomatisering uitvoeren
  • Uitdagingen van API-testen

Opzetten van API-testomgeving

  • API-testen is anders dan andere soorten softwaretests, aangezien GUI niet beschikbaar is, en toch moet u een initiële omgeving instellen die de API aanroept met een vereiste set parameters en vervolgens het testresultaat onderzoekt.
  • Daarom lijkt het opzetten van een testomgeving voor het testen van API-automatisering een beetje ingewikkeld.
  • Database en server moeten worden geconfigureerd volgens de toepassingsvereisten.
  • Zodra de installatie is voltooid, moet de API-functie worden aangeroepen om te controleren of die API werkt.

Typen uitvoer van een API

Een output van API zou kunnen zijn

  1. Elk type gegevens
  2. Status (zeg geslaagd of mislukt)
  3. Roep een andere API-functie aan.

Laten we eens kijken naar een voorbeeld van elk van de bovenstaande typen in deze api-testhandleiding

Elk type gegevens

Voorbeeld: er is een API-functie die twee gehele getallen moet optellen.

Lang toevoegen (int a, int b)

De nummers moeten worden opgegeven als invoerparameters. De uitvoer moet een optelling zijn van twee gehele getallen. Deze output moet worden geverifieerd met een verwacht resultaat.

Bellen moet worden gedaan zoals

toevoegen (1234, 5656)

Uitzonderingen moeten worden afgehandeld als het aantal de limiet van het gehele getal overschrijdt.

Status (zeg geslaagd of mislukt)

Beschouw de onderstaande API-functie -

  1. Slot()
  2. Ontgrendelen()
  3. Verwijderen ()

Ze retourneren elke waarde zoals True (in geval van succes) of false (in geval van fout) als uitvoer.

Een nauwkeuriger testcase zou zijn, kan de functies in elk van de scripts aanroepen en later controleren op wijzigingen in de database of de applicatie-GUI.

Aanroepen van een andere API / Event

In dit geval roepen we een van de API-functies aan die op zijn beurt een andere functie aanroept.

Bijvoorbeeld - De eerste API-functie kan worden gebruikt voor het verwijderen van een gespecificeerd record in de tabel en deze functie roept op zijn beurt een andere functie aan om de database te VERNIEUWEN.

Testcases voor API-testen:

Testgevallen van API-testen zijn gebaseerd op

  • Retourwaarde op basis van invoerconditie: het is relatief eenvoudig te testen, aangezien invoer kan worden gedefinieerd en resultaten kunnen worden geverifieerd
  • Retourneert niets: als er geen retourwaarde is, moet een gedrag van de API op het systeem worden gecontroleerd
  • Trigger een andere API / event / interrupt: als een uitvoer van een API een event of interrupt triggert, moeten die events en interrupt-listeners worden gevolgd
  • Update datastructuur: het updaten van de datastructuur heeft een resultaat of effect op het systeem en dat moet worden geverifieerd
  • Wijzig bepaalde bronnen: Als API-aanroep sommige bronnen wijzigt, moet deze worden gevalideerd door toegang te krijgen tot de respectieve bronnen

API-testaanpak

API-testaanpak is een vooraf gedefinieerde strategie of een methode die het QA-team zal uitvoeren om de API-tests uit te voeren nadat de build klaar is. Deze test omvat niet de broncode. De API-testaanpak helpt om de functionaliteiten, testtechnieken, invoerparameters en de uitvoering van testcases beter te begrijpen.

De volgende punten helpen de gebruiker om de API-testaanpak uit te voeren:

  1. De functionaliteit van het API-programma begrijpen en de reikwijdte van het programma duidelijk definiëren
  2. Pas testtechnieken toe zoals equivalentieklassen, grenswaardeanalyse en foutschatting en schrijf testcases voor de API
  3. Invoerparameters voor de API moeten op de juiste manier worden gepland en gedefinieerd
  4. Voer de testcases uit en vergelijk verwachte en daadwerkelijke resultaten.

Verschil tussen API-testen en Unit-testen

Testen van een eenheid API-testen
  • Ontwikkelaars doen het
  • Testers doen het
  • Afzonderlijke functionaliteit wordt getest
  • End-to-end-functionaliteit wordt getest
  • Een ontwikkelaar heeft toegang tot de broncode
  • Testers hebben geen toegang tot de broncode
  • UI-testen zijn ook betrokken
  • Alleen API-functies worden getest
  • Alleen basisfunctionaliteiten worden getest
  • Alle functionele problemen worden getest
  • Beperkt in omvang
  • Breder van opzet
  • Meestal liep voor het inchecken
  • Liep nadat build is gemaakt

API testen

API-automatiseringstests moeten ten minste de volgende testmethoden omvatten, afgezien van het gebruikelijke SDLC-proces

  • Opsporingstests: de testgroep moet de set aanroepen die in de API zijn gedocumenteerd handmatig uitvoeren, zoals controleren of een specifieke bron die door de API wordt weergegeven, kan worden vermeld, gemaakt en verwijderd, indien van toepassing
  • Bruikbaarheidstest: deze test controleert of de API functioneel en gebruiksvriendelijk is. En integreert API ook goed met een ander platform
  • Beveiligingstests: deze tests omvatten welk type authenticatie vereist is en of gevoelige gegevens via HTTP of beide zijn gecodeerd
  • Geautomatiseerd 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 toereikend is en voldoende informatie biedt om met de API te communiceren. Documentatie moet deel uitmaken van het uiteindelijke resultaat

Praktische tips voor API-testen:

  • API-testgevallen moeten worden gegroepeerd op testcategorie
  • Bovenop elke test moet u de declaraties opnemen van de API's die worden aangeroepen.
  • Parameterselectie moet expliciet worden vermeld in de testcase zelf
  • Geef prioriteit aan API-functieaanroepen, zodat testers gemakkelijk kunnen testen
  • Elke testcase moet zo onafhankelijk mogelijk zijn en onafhankelijk van afhankelijkheden
  • Voorkom "test chaining" in uw ontwikkeling
  • Speciale aandacht moet worden besteed aan het afhandelen van eenmalige oproepfuncties zoals - Verwijderen, Venster sluiten, enz ...
  • Oproepvolgorde moet worden uitgevoerd en goed worden gepland
  • Maak API-testcases voor alle mogelijke invoercombinaties van de API om een ​​volledige testdekking te garanderen.

Typen bugs die door API-tests worden gedetecteerd

  • Kan foutcondities niet netjes afhandelen
  • Ongebruikte vlaggen
  • Ontbrekende of dubbele functionaliteit
  • Betrouwbaarheidsproblemen. Moeilijkheden bij het verbinden en het krijgen van een reactie van de API.
  • Veiligheidsproblemen
  • Problemen met meerdere threads
  • Prestatieproblemen. API-responstijd is erg hoog.
  • Onjuiste fouten / waarschuwing voor een beller
  • Onjuiste afhandeling van geldige argumentwaarden
  • Responsgegevens zijn niet correct gestructureerd (JSON of XML)

API-testautomatisering uitvoeren

De volgende tutorials bieden een gedetailleerde gids om API-tests te automatiseren.

API testen met REST Assured

API testen met Postman

Hoe API te testen met UFT

Daarnaast zijn er andere tools voor API-testen. Bekijk ze hier

Uitdagingen van API-testen

Uitdagingen bij API-testen omvatten:

  • De belangrijkste uitdagingen bij het testen van web-API's zijn parametercombinatie, parameterkeuze en oproepvolgorde
  • Er is geen GUI beschikbaar om de applicatie te testen, wat het moeilijk maakt om invoerwaarden te geven
  • Het valideren en verifiëren van de output in een ander systeem is voor testers niet moeilijk
  • De selectie en categorisering van parameters is vereist om bekend te zijn bij de testers
  • De functie voor het afhandelen van uitzonderingen moet worden getest
  • Codeerkennis is noodzakelijk voor testers

Gevolgtrekking:

API bestaat uit een reeks klassen / functies / procedures die de bedrijfslogica-laag vertegenwoordigen. Als de API niet goed wordt getest, kan dit problemen veroorzaken, niet alleen in de API-applicatie, maar ook in de aanroepende applicatie. Het is een onmisbare test in software engineering.

Interessante artikelen...