API Testing Tutorial: Hva er API Test Automation? Hvordan teste

Før vi går til API Testing tutorial, la oss først forstå

Hva er API?

API (Application Programming Interface) er et databehandlingsgrensesnitt som muliggjør kommunikasjon og datautveksling mellom to separate programvaresystemer. Programvaresystem som utfører en API inneholder flere funksjoner / underrutiner som et annet programvaresystem kan utføre. API definerer forespørsler som kan gjøres, hvordan du kan lage forespørsler, dataformater som kan brukes, etc. mellom to programvaresystemer.

Hva er API-testing?

API-TESTING er en programvaretestetype som validerer API- er for applikasjonsprogrammering. Formålet med API-testing er å kontrollere funksjonaliteten, påliteligheten, ytelsen og sikkerheten til programmeringsgrensesnittene. I API-testing, i stedet for å bruke standard brukerinnganger (tastatur) og utganger, bruker du programvare til å sende samtaler til API, få utdata og notere systemets svar. API-tester er veldig forskjellige fra GUI-tester og konsentrerer seg ikke om utseendet og følelsen av et program. Den konsentrerer seg hovedsakelig om bedriftens logiske lag i programvarearkitekturen.

API-automatiseringstesting krever et program som kan samhandles via et API. For å teste et API, må du

  • Bruk Testing Tool til å drive API
  • Skriv din egen kode for å teste API

I denne API-testveiledningen vil du lære mer om-

  • Oppsett av API-testmiljø
  • Typer utdata fra en API
  • Test tilfeller for API-testing
  • Tilnærming til API-testing
  • Forskjellen mellom API-testing og enhetstesting
  • Hvordan teste API
  • Beste fremgangsmåter for API-testing
  • Typer feil som API-testing oppdager
  • Hvordan gjøre API-testautomatisering
  • Utfordringer ved API-testing

Oppsett av API-testmiljø

  • API-testing er annerledes enn andre programvaretestetyper, da GUI ikke er tilgjengelig, og likevel må du konfigurere det opprinnelige miljøet 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 skal konfigureres i henhold til applikasjonskravene.
  • Når installasjonen er ferdig, bør API-funksjonen kalles for å sjekke om API-en fungerer.

Typer utdata fra en API

En utgang fra API kan være

  1. Enhver type data
  2. Status (si godkjent eller ikke bestått)
  3. Ring 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.

Lang tilsetning (int a, int b)

Tallene må oppgis som inndataparametere. Utgangen skal være en summering av to heltall. Denne produksjonen må bekreftes med forventet resultat.

Ringer må gjøres som

legg til (1234, 5656)

Unntak må håndteres hvis tallet overstiger grensen for heltall.

Status (si godkjent 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 utdata.

En mer nøyaktig testtilfelle kan være, kan ringe til funksjonene i alle skriptene og senere se etter endringer i databasen eller i applikasjons-GUI.

Anrop til et annet API / arrangement

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 i sin tur en annen funksjon for å OPPFYRE databasen.

Test tilfeller for API-testing:

Testtilfeller av API-testing er basert på

  • Returverdi basert på inndatatilstand: det er relativt enkelt å teste, da inndata kan defineres og resultater kan autentiseres
  • Returnerer ikke noe: 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 avbryte lyttere spores
  • Oppdater datastruktur: Oppdatering av datastruktur vil ha en viss effekt eller effekt på systemet, og det bør godkjennes
  • Endre visse ressurser: Hvis API-anrop endrer noen ressurser, bør den valideres ved å få tilgang til respektive ressurser

API Testing Approach

API Testing Approach er en forhåndsdefinert strategi eller en metode som QA-teamet vil utføre for å gjennomføre API-testing etter at bygningen er klar. Denne testen inkluderer ikke kildekoden. API-testtilnærmingen hjelper deg med å bedre forstå funksjonalitetene, testteknikkene, inndataparametrene og gjennomføringen av testsaker.

Følgende punkter hjelper brukeren til å gjøre API-testtilnærming:

  1. Forstå funksjonaliteten til API-programmet og definere klart omfanget av programmet
  2. Bruk testteknikker som ekvivalensklasser, analyse av grenseverdier og gjetting av feil og skriv testtilfeller for API
  3. Inndataparametere for API må planlegges og defineres riktig
  4. Utfør testtilfellene 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 er testet
  • End to end-funksjonalitet er testet
  • En utvikler kan få tilgang til kildekoden
  • Testere kan ikke få tilgang til kildekoden
  • UI-testing er også involvert
  • Bare API-funksjoner blir testet
  • Bare grunnleggende funksjoner blir testet
  • Alle funksjonelle problemer blir testet
  • Begrenset i omfang
  • Bredere i omfang
  • Løp vanligvis før innsjekking
  • Løp etter build er opprettet

Hvordan teste API

API-automatiseringstesting bør omfatte minst følgende testmetoder bortsett fra vanlig SDLC-prosess

  • Funnstesting: Testgruppen skal utføre settet med anrop som er dokumentert i API manuelt, for eksempel å verifisere at en spesifikk ressurs som er eksponert av API-en kan oppføres, opprettes og slettes etter behov
  • Brukervennlighetstesting: Denne testen bekrefter om API-et er funksjonelt og brukervennlig. Og integreres API også godt med en annen plattform
  • 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 opprettelsen av et sett med skript eller et verktøy som kan brukes til å utfø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 fremgangsmåter for API-testing:

  • API-testtilfeller bør grupperes etter testkategori
  • På toppen av hver test, bør du inkludere erklæringen om API-ene som blir kalt.
  • Parametervalg bør nevnes eksplisitt i selve testsaken
  • Prioriter API-funksjonssamtaler slik at det blir enkelt for testere å teste
  • Hver prøvesak skal være så selvstendig og uavhengig av avhengigheter som mulig
  • Unngå "testkjetting" i utviklingen din
  • Spesiell forsiktighet må utvises når du håndterer engangsfunksjoner som - Delete, CloseWindow, etc ...
  • Anropssekvensering skal utføres og planlegges godt
  • For å sikre fullstendig testdekning, opprett API-testtilfeller for alle mulige inngangskombinasjoner av API.

Typer feil som API-testing oppdager

  • Klarer ikke å håndtere feilforhold elegant
  • Ubrukt flagg
  • Mangler eller dupliserer funksjonalitet
  • Pålitelighetsproblemer. Vanskeligheter med å koble til og få svar fra API.
  • Sikkerhetsproblemer
  • Problemer med flere tråder
  • Ytelsesproblemer. API-responstid er veldig høy.
  • Feil feil / advarsel til en innringer
  • Feil håndtering av gyldige argumentverdier
  • Svardata er ikke strukturert riktig (JSON eller XML)

Hvordan gjøre API-testautomatisering

Følgende veiledninger gir en detaljert guide for å automatisere API-test.

Hvordan teste API med REST Assured

Hvordan teste API med Postman

Hvordan teste API med UFT

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

Utfordringer ved API-testing

Utfordringene ved API-testing inkluderer:

  • Hovedutfordringene i Web API-testing er Parameter Combination, Parameter Selection og Call Sequencing
  • Det er ingen GUI tilgjengelig for å teste applikasjonen, noe som gjør det vanskelig å gi inputverdier
  • Validering og verifisering av utdata i et annet system er lite vanskelig for testere
  • Parametervalg og kategorisering kreves for å være kjent for testerne
  • Unntakshåndteringsfunksjonen må testes
  • Koding av kunnskap er nødvendig for testere

Konklusjon:

API består av et sett med klasser / funksjoner / prosedyrer som representerer virksomhetslogikklaget. Hvis API ikke er testet riktig, kan det føre til problemer ikke bare API-applikasjonen, men også i anropsprogrammet. Det er en uunnværlig test innen programvareteknikk.

Interessante artikler...