API Testing Tutorial: Vad är API Test Automation? Hur man testar

Låt oss först förstå innan vi går till API Testing tutorial

Vad är API?

API (Application Programming Interface) är ett datorgränssnitt som möjliggör kommunikation och datautbyte mellan två separata mjukvarusystem. Mjukvarusystem som kör ett API innehåller flera funktioner / underrutiner som ett annat mjukvarusystem kan utföra. API definierar förfrågningar som kan göras, hur man gör förfrågningar, dataformat som kan användas, etc. mellan två programvarusystem.

Vad är API-testning?

API TESTING är en programvarutestningstyp som validerar API: er för applikationsprogrammering. Syftet med API-testning är att kontrollera funktionalitet, tillförlitlighet, prestanda och säkerhet för programmeringsgränssnitten. I API-testning, istället för att använda standardanvändare (tangentbord) och utgångar, använder du programvara för att skicka samtal till API: et, få utdata och notera systemets svar. API-tester skiljer sig väldigt mycket från GUI-tester och kommer inte att koncentrera sig på utseendet på en applikation. Det koncentreras främst på affärslogikskiktet i programvaruarkitekturen.

API-automatiseringstestning kräver ett program som kan interageras via ett API. För att testa ett API måste du

  • Använd testverktyget för att driva API: et
  • Skriv din egen kod för att testa API: et

I denna API-testhandledning lär du dig mer om-

  • Uppsättning av API-testmiljö
  • Typer av utdata för ett API
  • Testfall för API-testning
  • Tillvägagångssätt för API-testning
  • Skillnad mellan API-testning och enhetstestning
  • Hur man testar API
  • Bästa praxis för API-testning
  • Typer av buggar som API-testning upptäcker
  • Hur man gör API Test Automation
  • Utmaningar med API-testning

Uppsättning av API-testmiljö

  • API-testning skiljer sig från andra typer av programvarutestning eftersom GUI inte är tillgängligt, och ändå måste du konfigurera en initial miljö som åberopar API med en nödvändig uppsättning parametrar och sedan slutligen undersöker testresultatet.
  • Därför verkar det lite komplicerat att skapa en testmiljö för API-automatiseringstest.
  • Databas och server ska konfigureras enligt applikationskraven.
  • När installationen är klar bör API-funktionen anropas för att kontrollera om API: n fungerar.

Typer av utdata för ett API

En utdata från API kan vara

  1. Vilken typ av data som helst
  2. Status (säg godkänd eller underkänd)
  3. Ring en annan API-funktion.

Låt oss titta på ett exempel på var och en av ovanstående typer i denna api-testhandledning

Vilken typ av data som helst

Exempel: Det finns en API-funktion som ska lägga till två heltal.

Lång tillsats (int a, int b)

Siffrorna måste anges som ingångsparametrar. Utgången ska vara en summering av två heltal. Denna utdata måste verifieras med ett förväntat resultat.

Samtal måste göras som

lägg till (1234, 5656)

Undantag måste hanteras om antalet överskrider heltalets gräns.

Status (säg godkänd eller underkänd)

Tänk på nedanstående API-funktion -

  1. Låsa()
  2. Låsa upp()
  3. Radera()

De returnerar alla värden som True (i fall av framgång) eller false (I händelse av fel) som utdata.

Ett mer exakt testfall skulle kunna vara, kan ringa till funktionerna i något av manusen och senare söka efter ändringar antingen i databasen eller i användargränssnittet.

Anrop till ett annat API / händelse

I det här fallet kallar vi en av API-funktionen som i sin tur kommer att anropa en annan funktion.

Till exempel - Första API-funktionen kan användas för att radera en angiven post i tabellen och den här funktionen i sin tur anropar en annan funktion för att UPPFRISKA databasen.

Testfall för API-testning:

Testfall av API-test baseras på

  • Returvärde baserat på inmatningsvillkor: det är relativt enkelt att testa, eftersom inmatning kan definieras och resultat kan verifieras
  • Returnerar ingenting: När det inte finns något returvärde ska ett beteende hos API på systemet kontrolleras
  • Trigger något annat API / händelse / avbrott: Om en utdata från ett API utlöser någon händelse eller avbrott, ska dessa händelser och avbryta lyssnare spåras
  • Uppdatera datastruktur: Uppdatering av datastruktur kommer att ha en viss effekt eller effekt på systemet, och det bör verifieras
  • Ändra vissa resurser: Om API-samtal ändrar vissa resurser ska det valideras genom att komma åt respektive resurser

API-testmetod

API Testing Approach är en fördefinierad strategi eller en metod som QA-teamet kommer att utföra för att genomföra API-testning efter att byggnaden är klar. Denna testning inkluderar inte källkoden. API-testmetoden hjälper till att bättre förstå funktionalitet, testteknik, ingångsparametrar och utförande av testfall.

Följande punkter hjälper användaren att göra API-testmetod:

  1. Förstå API-programmets funktionalitet och definiera tydligt programmets omfattning
  2. Tillämpa testtekniker som ekvivalensklasser, gränsvärdesanalys och felgissning och skriv testfall för API
  3. Ingångsparametrar för API måste planeras och definieras på lämpligt sätt
  4. Utför testfallet och jämför förväntade och faktiska resultat.

Skillnad mellan API-testning och enhetstestning

Enhetstestning API-testning
  • Utvecklare utför det
  • Testare utför det
  • Separat funktionalitet testas
  • End to end-funktionalitet testas
  • En utvecklare kan komma åt källkoden
  • Testare kan inte komma åt källkoden
  • UI-testning är också inblandad
  • Endast API-funktioner testas
  • Endast grundläggande funktioner testas
  • Alla funktionella problem testas
  • Begränsat i omfattning
  • Mer omfattande
  • Sprang vanligtvis före incheckningen
  • Körs efter att skapas skapas

Hur man testar API

API-automatiseringstestning bör omfatta åtminstone följande testmetoder bortsett från vanlig SDLC-process

  • Upptäcktestning: Testgruppen ska manuellt utföra den uppsättning samtal som dokumenteras i API: t, som att verifiera att en specifik resurs som exponeras av API: n kan listas, skapas och raderas efter behov
  • Användbarhetstestning: Denna testning verifierar om API: n är funktionellt och användarvänligt. Och integrerar API också bra med en annan plattform
  • Säkerhetstestning: Denna testning omfattar vilken typ av autentisering som krävs och om känslig data krypteras via HTTP eller båda
  • Automatiserad testning: API-testning bör kulminera i skapandet av en uppsättning skript eller ett verktyg som kan användas för att köra API regelbundet
  • Dokumentation: Testteamet måste se till att dokumentationen är tillräcklig och ger tillräckligt med information för att interagera med API: et. Dokumentation bör vara en del av den slutliga leveransen

Bästa praxis för API-testning:

  • API-testfall bör grupperas efter testkategori
  • Ovanpå varje test bör du inkludera deklarationerna för de API: er som anropas.
  • Parameterval bör nämnas uttryckligen i själva testfallet
  • Prioritera API-funktionssamtal så att det blir lätt för testare att testa
  • Varje testfall ska vara så fristående och oberoende av beroenden som möjligt
  • Undvik "testkedjning" i din utveckling
  • Särskild försiktighet måste iakttas vid hantering av engångsanropsfunktioner som - Radera, Stäng Windows osv ...
  • Samtalssekvensering bör utföras och väl planeras
  • För att säkerställa fullständig testtäckning, skapa API-testfall för alla möjliga ingångskombinationer av API: et.

Typer av buggar som API-test upptäcker

  • Det går inte att hantera felförhållanden på ett elegant sätt
  • Oanvända flaggor
  • Funktion saknas eller dupliceras
  • Tillförlitlighetsfrågor. Svårigheter att ansluta och få svar från API.
  • Säkerhetsproblem
  • Problem med flera trådar
  • Prestandafrågor. API-svarstiden är mycket hög.
  • Felaktiga fel / varning till en uppringare
  • Felaktig hantering av giltiga argumentvärden
  • Svarsdata är inte strukturerat korrekt (JSON eller XML)

Hur man gör API Test Automation

Följande självstudier ger en detaljerad guide för att automatisera API-test.

Hur man testar API med REST Assured

Hur man testar API med Postman

Hur man testar API med UFT

Dessutom finns det andra verktyg för API-testning. Kontrollera dem här

Utmaningar med API-testning

Utmaningarna med API-testning inkluderar:

  • Huvudutmaningarna i Web API-testning är Parameter Combination, Parameter Selection och Call Sequencing
  • Det finns inget GUI tillgängligt för att testa applikationen vilket gör det svårt att ge inmatningsvärden
  • Validering och verifiering av utdata i ett annat system är lite svårt för testare
  • Parameterval och kategorisering krävs för att testarna ska känna till dem
  • Undantagshanteringsfunktionen måste testas
  • Kodningskunskap är nödvändig för testare

Slutsats:

API består av en uppsättning klasser / funktioner / procedurer som representerar affärslogiklagret. Om API inte testas ordentligt kan det orsaka problem inte bara API-applikationen utan också i den anropande applikationen. Det är ett oumbärligt test inom programvaruteknik.

Intressanta artiklar...