API Testing Tutorial: Hva er API Test Automation?

Hva er API-testing?

API-testing er en programvaretestingstype som validerer Application Programming Interfaces (API). Formålet med API-testing er å sjekke funksjonaliteten, påliteligheten, ytelsen og sikkerheten til programmeringsgrensesnittene. I API-testing, i stedet for å bruke standard brukerinndata (tastatur) og utganger, bruker du programvare for å sende anrop til API, få utdata og notere systemets svar. API-tester er veldig forskjellige fra GUI-tester og vil ikke konsentrere seg om utseendet og følelsen til en applikasjon. Den konsentrerer seg hovedsakelig om forretningslogikklaget i programvarearkitekturen.

API-testbilde

For bakgrunn, API (applikasjonsprogrammeringsgrensesnitt) er et datagrensesnitt som muliggjør kommunikasjon og datautveksling mellom to separate programvaresystemer. Et programvaresystem som kjører en API inkluderer flere funksjoner/subrutiner som et annet programvaresystem kan utføre. API definerer forespørsler som kan gjøres, hvordan man lager forespørsler, dataformater som kan brukes, etc., mellom to programvaresystemer.

Oppsett av API Test Automation Environment

API-automatisering Testing krever en applikasjon som kan samhandles via en API. For å teste en API må du

  1. Bruk testverktøyet til å drive API
  2. Skriv din egen kode for å teste API

Noen få punkter å merke seg

  • API-testing er annerledes enn andre typer programvaretesting ettersom GUI ikke er tilgjengelig, og likevel må du sette opp et innledende miljø som påkaller API med et nødvendig sett med parametere og deretter til slutt undersøke testresultatet.
  • Derfor virker det litt komplisert å sette opp et testmiljø for API-automatiseringstesting.
  • Database og server bør konfigureres i henhold til applikasjonskravene.
  • Når installasjonen er ferdig, bør API-funksjonen kalles opp for å sjekke om den API-en fungerer.

Typer utdata for en API

En utgang av API kan være

  1. Enhver type data
  2. Status (si bestått eller ikke bestått)
  3. Kalle opp en annen API-funksjon.

La oss se på et eksempel på hver av de ovennevnte typene i denne API-testveiledningen

Enhver type data

Eksempel: Det er en API-funksjon som skal legge til to heltall.

Long add(int a, int b)

Tallene må angis som inngangsparametere. Utdata skal være en summering av to heltall. Denne utgangen må verifiseres med et forventet resultat.

Ringing må gjøres som f.eks

add (1234, 5656)

Unntak må håndteres hvis antallet overskrider heltallsgrensen.

Status (si bestått eller ikke bestått)

Tenk på API-funksjonen nedenfor -

  1. Låse()
  2. Låse opp()
  3. Slett()

De returnerer en hvilken som helst verdi som True (i tilfelle suksess) eller false (i tilfelle feil) som en utgang.

En mer nøyaktig Testsak ville være, kan kalle opp funksjonene i alle skriptene og senere se etter endringer enten i databasen eller applikasjonsgrensesnittet.

Kalling av en annen API/hendelse

Kalling av en annen API/hendelse

I dette tilfellet kaller vi en av API-funksjonene som igjen vil kalle en annen funksjon.

For eksempel – Første API-funksjon kan brukes til å slette en spesifisert post i tabellen, og denne funksjonen kaller på sin side en annen funksjon for å OPPDATERE databasen.

Testtilfeller for API-testing:

Testtilfeller av API-testing er basert på

  • Returverdi basert på inndatabetingelse: det er relativt enkelt å teste, da inndata kan defineres og resultater kan autentiseres
  • Returnerer ingenting: Når det ikke er noen returverdi, skal en oppførsel av API på systemet kontrolleres
  • Utløs en annen API/hendelse/avbrudd: Hvis en utgang fra en API utløser en hendelse eller avbrudd, bør disse hendelsene og avbruddslyttere spores
  • Oppdater datastruktur: Oppdatering av datastruktur vil ha noen utfall eller effekt på systemet, og det bør autentiseres
  • Endre visse ressurser: Hvis API-kallet endrer noen ressurser, bør det valideres ved å få tilgang til respektive ressurser

API-testmetode

API-testmetode er en forhåndsdefinert strategi eller en metode som QA-teamet vil utføre for å utføre API-testingen etter at byggingen er klar. Denne testen inkluderer ikke kildekoden. API-testtilnærmingen hjelper til med å bedre forstå funksjonaliteten, testteknikkene, inngangsparameterne og utførelsen av testtilfeller.

Følgende punkter hjelper brukeren med å utføre en API-testmetode:

API-testmetode

  1. Forstå funksjonaliteten til API-programmet og klart definere omfanget av programmet
  2. Bruk testteknikker som ekvivalensklasser, grenseverdianalyse og feilgjetting og skriv testtilfeller for API-en
  3. Inndataparametere for API-en må planlegges og defineres på riktig måte
  4. Utfør testsakene og sammenlign forventede og faktiske resultater.

Forskjellen mellom API-testing og enhetstesting

Enhetstesting API-testing
Utviklere utfører det Testere utfører det
Separat funksjonalitet testes End-to-end funksjonalitet er testet
En utvikler kan få tilgang til kildekoden Testere får ikke tilgang til kildekoden
UI-testing er også involvert Kun API-funksjoner testes
Kun grunnleggende funksjoner testes Alle funksjonsproblemer er testet
Begrenset i omfang Bredere i omfang
Vanligvis kjørte før innsjekking Testkjøring etter at bygget er opprettet

Hvordan teste API

API-automatiseringstesting bør dekke minst følgende testmetoder bortsett fra den vanlige SDLC-prosessen

  • Oppdagelsestesting: Testgruppen skal manuelt utføre settet med anrop som er dokumentert i API-en, for eksempel å verifisere at en spesifikk ressurs eksponert av API-en kan listes opp, opprettes og slettes etter behov
  • Brukervennlighetstesting: Denne testen verifiserer om API-en er funksjonell og brukervennlig. Og integrerer API godt med en annen plattform også
  • Sikkerhetstesting: Denne testen inkluderer hvilken type autentisering som kreves og om sensitive data er kryptert over HTTP eller begge deler
  • Automatisert testing: API-testing bør kulminere i å lage et sett med skript eller et verktøy som kan brukes til å kjøre API regelmessig
  • Dokumentasjon: Testteamet må sørge for at dokumentasjonen er tilstrekkelig og gir nok informasjon til å samhandle med API. Dokumentasjon bør være en del av den endelige leveransen

Beste praksis for API-testing:

  • API-testtilfeller bør grupperes etter testkategori
  • På toppen av hver test bør du inkludere erklæringene til API-ene som kalles.
  • Parametervalg bør nevnes eksplisitt i selve testsaken
  • Prioriter API-funksjonskall slik at det blir enkelt for testere å teste
  • Hvert testtilfelle bør være så selvstendig og uavhengig av avhengigheter som mulig
  • Unngå "testkjeding" i utviklingen din
  • Spesiell forsiktighet må utvises når du håndterer engangsanropsfunksjoner som – Slett, Lukk vindu, etc...
  • Samtalesekvensering bør utføres og planlegges godt
  • For å sikre fullstendig testdekning, lag API-testtilfeller for alle mulige inngangskombinasjoner av API.

Typer feil som API-testing oppdager

  • Klarer ikke å håndtere feiltilstander elegant
  • Ubrukte flagg
  • Manglende eller duplisert funksjonalitet
  • Pålitelighetsproblemer. Vanskeligheter med å koble til og få respons fra API.
  • Sikkerhetsproblemer
  • Problemer med flere tråder
  • Ytelsesproblemer. API-responstiden er veldig høy.
  • Uriktige feil/advarsel til en innringer
  • Feil håndtering av gyldige argumentverdier
  • Responsdata er ikke strukturert riktig (JSON eller XML)

Hvordan gjøre API Test Automation

1) ReadyAPI

ReadyAPI er et ledende verktøy for funksjons-, sikkerhets- og lasttesting av RESTful, SOAP, GraphQL og andre webtjenester. På én intuitiv plattform får du tre kraftige verktøy: ReadyAPI Test, ReadyAPI Performance og ReadyAPI Virtualization. Med disse verktøyene kan du utføre funksjons-, sikkerhets- og ytelses-/belastningstesting. Du kan også håne API og webtjenester med vårt robuste virtualiseringsverktøy. I tillegg kan du enkelt integrere din CI/CD pipeline under hvert bygg.

ReadyAPI

Viktige funksjoner

  • ReadyAPI kan integreres i alle miljøer.
  • Den har en Smart Assertion-funksjon som raskt kan lage massepåstander mot hundrevis av endepunkter.
  • Innebygd støtte for Git, Docker, Jenkins, AzureOsv
  • Støtter kommandolinje for automatisert testing.
  • Støtter parallell utførelse av funksjonstester og jobbkø.
  • Promotes kode gjenbruk
  • Fjerner avhengigheter under testing og utvikling.

Besøk ReadyAPI >>

14-dagers gratis prøveperiode (ikke nødvendig med kredittkort)

Følgende veiledninger gir en detaljert veiledning for å automatisere API-testen.

Dessuten er det andre verktøy for API-testing. Sjekk dem her.

Utfordringer ved API-testing

Utfordringer med API-testing inkluderer:

  • Hovedutfordringene i Web API-testing er Parameterkombinasjon, parametervalg og anropssekvensering
  • Det er ingen GUI tilgjengelig å teste applikasjonen, som gjør det er vanskelig å gi inngangsverdier
  • Validering og verifisering av utdata i et annet system er litt vanskelig for testere
  • Parametervalg og kategorisering er nødvendig for å være kjent for testerne
  • Unntakshåndteringsfunksjon må testes
  • Kodekunnskap er nødvendig for testere

Konklusjon

API består av et sett med klasser/funksjoner/prosedyrer som representerer forretningslogikklaget. Hvis API ikke er testet riktig, kan det forårsake problemer ikke bare i API-applikasjonen, men også i den kallende applikasjonen. Det er en uunnværlig test i programvareteknikk.