API-testvejledning: Hvad er API-testautomatisering? Sådan testes

Lad os først forstå, før vi går til API-testvejledning

Hvad er API?

API (Application Programming Interface) er en computergrænseflade, der muliggør kommunikation og dataudveksling mellem to separate softwaresystemer. Softwaresystem, der udfører en API, indeholder flere funktioner / underrutiner, som et andet softwaresystem kan udføre. API definerer anmodninger, der kan foretages, hvordan man fremsætter anmodninger, dataformater, der kan bruges osv. Mellem to softwaresystemer.

Hvad er API-test?

API-TESTING er en softwaretesttype, der validerer API'er (Application Programming Interfaces). Formålet med API-test er at kontrollere funktionaliteten, pålideligheden, ydeevnen og sikkerheden af ​​programmeringsgrænsefladerne. I API Testing bruger du software i stedet for at bruge standardbrugerinput (keyboard) og output, software til at sende opkald til API'en, få output og notere systemets svar. API-test er meget forskellige fra GUI-tests og koncentrerer sig ikke om applikationens udseende og fornemmelse. Det koncentrerer sig primært om forretningslogiklaget i softwarearkitekturen.

API-automatiseringstestning kræver en applikation, der kan interageres via en API. For at teste en API skal du

  • Brug testværktøjet til at køre API'et
  • Skriv din egen kode for at teste API'et

I denne API-testvejledning vil du lære mere om-

  • Opsætning af API-testmiljø
  • Typer af output fra en API
  • Test tilfælde til API-test
  • Tilgang til API-test
  • Forskel mellem API-test og enhedstest
  • Sådan testes API
  • Bedste fremgangsmåder ved API-test
  • Typer af fejl, som API-test registrerer
  • Sådan gør du API-testautomatisering
  • Udfordringer ved API-test

Opsætning af API-testmiljø

  • API-test er anderledes end andre softwaretesttyper, da GUI ikke er tilgængelig, og alligevel skal du konfigurere det oprindelige miljø, der påberåber API med et krævet sæt parametre og derefter til sidst undersøger testresultatet.
  • Derfor virker opsætning af et testmiljø til API-automatiseringstest lidt kompliceret.
  • Database og server skal konfigureres i henhold til applikationskravene.
  • Når installationen er færdig, skal API-funktionen kaldes for at kontrollere, om API'en fungerer.

Typer af output fra en API

Et output fra API kunne være

  1. Enhver type data
  2. Status (sig bestået eller ikke bestået)
  3. Ring til en anden API-funktion.

Lad os se på et eksempel på hver af de ovenstående typer i denne api-testvejledning

Enhver type data

Eksempel: Der er en API-funktion, der skal tilføje to heltal.

Lang tilføjelse (int a, int b)

Tallene skal angives som inputparametre. Outputtet skal være en sammenfatning af to heltal. Denne output skal verificeres med et forventet resultat.

Opkald skal foretages som f.eks

tilføj (1234, 5656)

Undtagelser skal håndteres, hvis antallet overskrider heltalsgrænsen.

Status (sig bestået eller ikke bestået)

Overvej nedenstående API-funktion -

  1. Låse()
  2. Lås op ()
  3. Slet ()

De returnerer enhver værdi som sandt (i tilfælde af succes) eller falsk (i tilfælde af fejl) som output.

En mere nøjagtig testtilstand ville være, kan kalde funktionerne i et hvilket som helst af scriptsne og senere kontrollere for ændringer i enten databasen eller Application GUI.

Opkald til en anden API / begivenhed

I dette tilfælde kalder vi en af ​​API-funktionerne, som igen kalder en anden funktion.

For eksempel - Første API-funktion kan bruges til at slette en specificeret post i tabellen, og denne funktion kalder igen en anden funktion for at OPFRISKE databasen.

Test tilfælde til API-test:

Test tilfælde af API test er baseret på

  • Returneringsværdi baseret på inputtilstand: det er relativt let at teste, da input kan defineres, og resultater kan godkendes
  • Returnerer ikke noget: Når der ikke er nogen returværdi, skal en adfærd for API på systemet kontrolleres
  • Udløs en anden API / begivenhed / afbryd: Hvis en output fra en API udløser en begivenhed eller afbrydelse, skal disse begivenheder og afbryde lyttere spores
  • Opdater datastruktur: Opdatering af datastruktur vil have et eller andet resultat eller en effekt på systemet, og det skal godkendes
  • Rediger visse ressourcer: Hvis API-opkald ændrer nogle ressourcer, skal det valideres ved at få adgang til respektive ressourcer

API-testmetode

API Testing Approach er en foruddefineret strategi eller en metode, som QA-teamet vil udføre for at udføre API-test, når bygningen er klar. Denne test inkluderer ikke kildekoden. API-testmetoden hjælper med bedre at forstå funktionaliteter, testteknikker, inputparametre og udførelse af testsager.

Følgende punkter hjælper brugeren med at udføre API-testmetode:

  1. Forståelse af API-programmets funktionalitet og klart definere programmets omfang
  2. Anvend testteknikker såsom ækvivalensklasser, analyse af grænseværdier og gættet fejl og skriv testsager til API'et
  3. Inputparametre til API skal planlægges og defineres korrekt
  4. Udfør testsagerne og sammenlign forventede og faktiske resultater.

Forskel mellem API-test og enhedstest

Enhedstest API-test
  • Udviklere udfører det
  • Testere udfører det
  • Separat funktionalitet testes
  • End to end-funktionalitet testes
  • En udvikler kan få adgang til kildekoden
  • Testere har ikke adgang til kildekoden
  • UI-test er også involveret
  • Kun API-funktioner testes
  • Kun grundlæggende funktionaliteter testes
  • Alle funktionelle problemer testes
  • Begrænset i omfang
  • Bredere i omfang
  • Kørte normalt inden check-in
  • Ran efter build er oprettet

Sådan testes API

API-automatiseringstestning skal mindst omfatte følgende testmetoder bortset fra den sædvanlige SDLC-proces

  • Opdagelsestest: Testgruppen skal manuelt udføre det sæt opkald, der er dokumenteret i API'et, som at verificere, at en bestemt ressource, der er eksponeret af API'et, kan vises, oprettes og slettes efter behov
  • Usability testing: Denne test verificerer, om API'en er funktionel og brugervenlig. Og integrerer API også godt med en anden platform
  • Sikkerhedstest: Denne test inkluderer, hvilken type godkendelse der kræves, og om følsomme data krypteres via HTTP eller begge dele
  • Automatiseret test: API-test skal kulminere i oprettelsen af ​​et sæt scripts eller et værktøj, der kan bruges til at udføre API regelmæssigt
  • Dokumentation: Testteamet skal sørge for, at dokumentationen er tilstrækkelig og giver tilstrækkelig information til at interagere med API'et. Dokumentation skal være en del af den endelige levering

Bedste fremgangsmåder ved API-test:

  • API-testsager skal grupperes efter testkategori
  • Oven på hver test skal du medtage erklæringerne om de API'er, der kaldes til.
  • Parametervalg skal udtrykkeligt nævnes i selve testsagen
  • Prioriter API-opkald, så det er let for testere at teste
  • Hver testsag skal være så selvstændig og uafhængig af afhængigheder som muligt
  • Undgå "testkæde" i din udvikling
  • Der skal udvises særlig forsigtighed under håndtering af engangsopkaldsfunktioner som - Slet, CloseWindow osv ...
  • Opkaldssekventering skal udføres og planlægges godt
  • For at sikre fuldstændig testdækning skal du oprette API-testtilfælde for alle mulige inputkombinationer af API'en.

Typer af fejl, som API-test registrerer

  • Mislykkes med at håndtere fejltilstande yndefuldt
  • Ubrugte flag
  • Manglende eller duplikatfunktionalitet
  • Problemer med pålidelighed. Vanskeligheder ved at oprette forbindelse og få svar fra API.
  • Sikkerhedsproblemer
  • Problemer med flere tråde
  • Problemer med ydeevne. API-svartid er meget høj.
  • Forkert fejl / advarsel til en opkalder
  • Forkert håndtering af gyldige argumentværdier
  • Svardata er ikke struktureret korrekt (JSON eller XML)

Sådan gør du API-testautomatisering

Følgende tutorials giver en detaljeret guide til automatisering af API-test.

Sådan testes API med REST Assured

Sådan testes API med Postman

Sådan testes API med UFT

Derudover er der andre værktøjer til API-test. Tjek dem her

Udfordringer ved API-test

Udfordringer ved API-test inkluderer:

  • Hovedudfordringer i Web API-test er Parameter Combination, Parameter Selection og Call Sequencing
  • Der er ingen GUI tilgængelig til at teste applikationen, hvilket gør det vanskeligt at give inputværdier
  • Validering og kontrol af output i et andet system er lidt vanskeligt for testere
  • Parametervalg og kategorisering kræves for at være kendt af testerne
  • Funktionen til undtagelseshåndtering skal testes
  • Kodning af viden er nødvendig for testere

Konklusion:

API består af et sæt klasser / funktioner / procedurer, der repræsenterer forretningslogiklaget. Hvis API ikke er testet korrekt, kan det forårsage problemer ikke kun API-applikationen, men også i den opkaldende applikation. Det er en uundværlig test inden for software engineering.

Interessante artikler...