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
- Vilken typ av data som helst
- Status (säg godkänd eller underkänd)
- 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 -
- Låsa()
- Låsa upp()
- 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:
- Förstå API-programmets funktionalitet och definiera tydligt programmets omfattning
- Tillämpa testtekniker som ekvivalensklasser, gränsvärdesanalys och felgissning och skriv testfall för API
- Ingångsparametrar för API måste planeras och definieras på lämpligt sätt
- Utför testfallet och jämför förväntade och faktiska resultat.
Skillnad mellan API-testning och enhetstestning
Enhetstestning | API-testning |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.