Handledning för API-testning: Vad är API-testautomatisering?
Vad är API-testning?
API-testning är en mjukvarutestningstyp som validerar Application Programming Interfaces (API). Syftet med API-testning är att kontrollera funktionalitet, tillförlitlighet, prestanda och säkerhet hos programmeringsgränssnitten. I API-testning, istället för att använda vanliga användaringångar (tangentbord) och utgångar, använder du programvara för att skicka anrop till API:t, få utdata och anteckna systemets svar. API-tester skiljer sig mycket från GUI-tester och kommer inte att koncentrera sig på utseendet och känslan av en applikation. Den koncentrerar sig huvudsakligen på affärslogikskiktet i mjukvaruarkitekturen.
För bakgrund, API (Application Programming Interface) är ett datorgränssnitt som möjliggör kommunikation och datautbyte mellan två separata mjukvarusystem. Ett mjukvarusystem som kör ett API innehåller flera funktioner/subrutiner 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å mjukvarusystem.
Uppsättning av API Test Automation Environment
API-automatisering Testning kräver en applikation 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
Några punkter att notera
- API-testning skiljer sig från andra typer av mjukvarutestning eftersom GUI inte är tillgängligt, och ändå måste du ställa in en initial miljö som anropar API med en nödvändig uppsättning parametrar och sedan slutligen undersöka testresultatet.
- Därför verkar det lite komplicerat att sätta upp en testmiljö för API-automatiseringstestning.
- Databas och server bör konfigureras enligt applikationskraven.
- När installationen är klar ska API-funktionen anropas för att kontrollera om det API fungerar.
Typer av utdata för ett API
En utdata från API kan vara
- Alla typer av data
- Status (säg Godkänd eller Underkänd)
- Anropa en annan API-funktion.
Låt oss titta på ett exempel på var och en av ovanstående typer i denna API-testhandledning
Alla typer av data
Exempel: Det finns en API-funktion som ska lägga till två heltal.
Long add(int a, int b)
Siffrorna måste anges som inmatningsparametrar. Utdata ska vara en summering av två heltal. Denna utdata måste verifieras med ett förväntat resultat.
Ringer behöver göras som t.ex
add (1234, 5656)
Undantag måste hanteras om antalet överskrider heltalsgränsen.
Status (säg Godkänd eller Underkänd)
Tänk på nedanstående API-funktion -
- Låsa()
- Låsa upp()
- Radera()
De returnerar valfritt värde som True (vid framgång) eller false (vid fel) som en utdata.
En mer exakt Testfall skulle vara, kan anropa funktionerna i något av skripten och senare söka efter ändringar antingen i databasen eller applikationsgränssnittet.
Anrop av ett annat API/händelse
I det här fallet anropar vi en av API-funktionerna som i sin tur anropar en annan funktion.
Till exempel – Första API-funktionen kan användas för att radera en specificerad post i tabellen och denna funktion anropar i sin tur en annan funktion för att UPPDATERA databasen.
Testfall för API-testning:
Testfall av API-testning baseras på
- Returvärde baserat på indatavillkor: det är relativt enkelt att testa, eftersom indata kan definieras och resultat kan autentiseras
- Returnerar inget: När det inte finns något returvärde ska ett beteende hos API på systemet kontrolleras
- Utlösa något annat API/händelse/avbrott: Om en utdata från ett API utlöser någon händelse eller avbrott, bör dessa händelser och avlyssnare spåras
- Uppdatera datastruktur: Uppdatering av datastruktur kommer att ha ett visst resultat eller effekt på systemet, och det bör autentiseras
- Ändra vissa resurser: Om API-anrop ändrar vissa resurser bör det valideras genom att komma åt respektive resurser
Metod för API-testning
Metod för API-testning är en fördefinierad strategi eller en metod som QA-teamet kommer att utföra för att utföra API-testningen efter att bygget är klart. Denna testning inkluderar inte källkoden. API-testmetoden hjälper till att bättre förstå funktionerna, testteknikerna, inmatningsparametrarna och utförandet av testfall.
Följande punkter hjälper användaren att göra en API-testmetod:
- Förstå funktionaliteten hos API-programmet och tydligt definiera programmets omfattning
- Tillämpa testtekniker som ekvivalensklasser, gränsvärdesanalys och felgissning och skriv testfall för API:et
- Indataparametrar för API:t måste planeras och definieras på lämpligt sätt
- Utför testfallen och jämför förväntade och faktiska resultat.
Skillnaden 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 funktionsproblem testas |
Begränsad i omfattning | Bredare i omfattning |
Sprang vanligtvis innan incheckning | Testkörning efter att konstruktionen har skapats |
Hur man testar API
API-automatiseringstestning bör omfatta åtminstone följande testmetoder förutom den vanliga SDLC-processen
- Upptäcktstester: Testgruppen bör manuellt köra uppsättningen av anrop som dokumenterats i API:et, som att verifiera att en specifik resurs exponerad av API:et kan listas, skapas och raderas på lämpligt sätt
- Användbarhetstestning: Denna testning verifierar om API:et är funktionellt och användarvänligt. Och integrerar API bra med en annan plattform också
- Säkerhetstestning: Detta test inkluderar vilken typ av autentisering som krävs och om känslig data är krypterad över HTTP eller båda
- Automatisk 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 adekvat och ger tillräckligt med information för att interagera med API:et. Dokumentation bör vara en del av slutleveransen
Bästa praxis för API-testning:
- API-testfall bör grupperas efter testkategori
- Ovanpå varje test bör du inkludera deklarationerna om de API: er som anropas.
- Val av parametrar bör uttryckligen nämnas i själva testfallet
- Prioritera API-funktionsanrop så att det blir lätt för testare att testa
- Varje testfall bör vara så fristående och oberoende av beroenden som möjligt
- Undvik "testkedja" i din utveckling
- Särskild försiktighet måste iakttas när du hanterar funktioner för engångssamtal som - Radera, Stäng fönster, etc...
- Samtalssekvensering bör utföras och välplanerad
- För att säkerställa fullständig testtäckning, skapa API-testfall för alla möjliga indatakombinationer av API:et.
Typer av buggar som API-testning upptäcker
- Misslyckas med att hantera feltillstånd på ett elegant sätt
- Oanvända flaggor
- Saknas eller dupliceras funktionalitet
- Tillförlitlighetsproblem. Svårt att ansluta och få svar från API.
- Säkerhetsproblem
- Flertrådsproblem
- Prestandaproblem. API-svarstiden är mycket hög.
- Otillbörliga fel/varning till en uppringare
- Felaktig hantering av giltiga argumentvärden
- Svarsdata är inte korrekt strukturerad (JSON eller XML)
Hur man gör API Test Automation
1) ReadyAPI
ReadyAPI är ett ledande verktyg för funktions-, säkerhets- och belastningstestning av RESTful, SOAP, GraphQL och andra webbtjänster. I en intuitiv plattform får du tre kraftfulla verktyg: ReadyAPI Test, ReadyAPI Performance och ReadyAPI Virtualization. Med dessa verktyg kan du utföra funktions-, säkerhets- och prestanda-/belastningstestning. Du kan också håna API och webbtjänster med vårt robusta virtualiseringsverktyg. Dessutom kan du enkelt integrera din CI/CD pipeline under varje bygge.
VIKTIGA FUNKTIONER
- ReadyAPI kan integreras i alla miljöer.
- Den har en Smart Assertion-funktion som snabbt kan skapa bulkpåståenden mot hundratals slutpunkter.
- Inbyggt stöd för Git, Docker, Jenkins, AzureEtc.
- Stöder kommandorad för automatisk testning.
- Stöder parallellt genomförande av funktionstester och jobbköer.
- Promotes kod återanvändning
- Tar bort beroenden under testning och utveckling.
14-dagars gratis provperiod (inget kreditkort krävs)
Följande handledningar ger en detaljerad guide för att automatisera API-test.
Dessutom finns det andra verktyg för API-testning. Kolla dem här.
Utmaningar med API-testning
Utmaningar med API-testning inkluderar:
- De största utmaningarna i webb-API-testning är Parameterkombination, parameterval och samtalssekvens
- Det finns inget GUI tillgängligt att testa applikationen, vilket gör det är svårt att ge ingångsvärden
- Att validera och verifiera utdata i ett annat system är lite svårt för testare
- Val av parametrar och kategorisering krävs för att testarna ska känna till dem
- Undantagshanteringsfunktion behöver testas
- Kodkunskaper är nödvändiga för testare
Slutsats
API består av en uppsättning klasser/funktioner/procedurer som representerar affärslogikskiktet. Om API inte testas ordentligt kan det orsaka problem inte bara i API-applikationen utan även i den anropande applikationen. Det är ett oumbärligt test inom mjukvaruteknik.