API-testvejledning: Hvad er API-testautomatisering?
Hvad er API-test?
API-testning er en softwaretesttype, der validerer Application Programming Interfaces (API'er). Formålet med API-testning er at kontrollere funktionaliteten, pålideligheden, ydeevnen og sikkerheden af programmeringsgrænsefladerne. I API-testning bruger du i stedet for at bruge standardbrugerinput (tastatur) og udgange software til at sende opkald til API'en, få output og notere systemets svar. API-tests er meget forskellige fra GUI-tests og vil ikke koncentrere sig om udseendet og følelsen af en applikation. Det koncentrerer sig hovedsageligt om softwarearkitekturens forretningslogiske lag.
Til baggrund, API (applikationsprogrammeringsgrænseflade) er en computergrænseflade, der muliggør kommunikation og dataudveksling mellem to separate softwaresystemer. Et softwaresystem, der udfører en API, omfatter flere funktioner/underrutiner, som et andet softwaresystem kan udføre. API definerer anmodninger, der kan laves, hvordan man laver anmodninger, dataformater, der kan bruges osv. mellem to softwaresystemer.
Opsætning af API Test Automation Environment
API-automatisering Testning kræver en applikation, der kan interageres via en API. For at teste en API skal du
- Brug testværktøjet til at drive API'et
- Skriv din egen kode for at teste API'en
Et par punkter at bemærke
- API-testning er anderledes end andre softwaretesttyper, da GUI ikke er tilgængelig, og alligevel er du forpligtet til at opsætte et indledende miljø, der kalder API med et påkrævet sæt parametre og derefter til sidst undersøge testresultatet.
- Derfor virker opsætning af et testmiljø til API-automatiseringstest lidt komplekst.
- Database og server skal konfigureres i henhold til applikationskravene.
- Når installationen er færdig, skal API-funktionen kaldes for at kontrollere, om denne API fungerer.
Typer af output af en API
Et output af API kunne være
- Enhver form for data
- Status (f.eks. bestået eller ikke bestået)
- Kald en anden API-funktion.
Lad os se på et eksempel på hver af ovenstående typer i denne API-testøvelse
Enhver type data
Eksempel: Der er en API-funktion, der skal tilføje to heltal.
Long add(int a, int b)
Tallene skal angives som inputparametre. Outputtet skal være en summering af to heltal. Dette output skal verificeres med et forventet resultat.
Der skal ringes op som f.eks
add (1234, 5656)
Undtagelser skal håndteres, hvis antallet overstiger heltalsgrænsen.
Status (f.eks. bestået eller ikke bestået)
Overvej nedenstående API-funktion -
- Låse()
- Lås op()
- Slet()
De returnerer enhver værdi, såsom True (i tilfælde af succes) eller falsk (i tilfælde af fejl) som output.
En mere præcis Test sag ville være, kan kalde funktionerne i et hvilket som helst af scripts og senere kontrollere for ændringer enten i databasen eller Application GUI.
Kald af en anden API/begivenhed
I dette tilfælde kalder vi en af API-funktionerne, som igen vil kalde 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 OPFRASKE databasen.
Testcases til API-testning:
Testcases af API-testning er baseret på
- Returværdi baseret på inputbetingelse: det er relativt nemt at teste, da input kan defineres og resultater kan autentificeres
- Returnerer ikke noget: Når der ikke er nogen returværdi, skal en adfærd af API på systemet kontrolleres
- Udløs en anden API/hændelse/interrupt: Hvis et output fra en API udløser en hændelse eller afbrydelse, skal disse hændelser og interruptlyttere spores
- Opdater datastruktur: Opdatering af datastruktur vil have et resultat eller en effekt på systemet, og det bør være autentificeret
- Rediger visse ressourcer: Hvis API-kald ændrer nogle ressourcer, skal det valideres ved at få adgang til respektive ressourcer
API-testmetode
API-testmetode er en foruddefineret strategi eller en metode, som QA-teamet vil udføre for at udføre API-testen, efter at bygningen er klar. Denne test inkluderer ikke kildekoden. API-testmetoden hjælper med bedre at forstå funktionaliteterne, testteknikkerne, inputparametrene og udførelsen af testcases.
Følgende punkter hjælper brugeren med at udføre en API-testmetode:
- Forståelse af funktionaliteten af API-programmet og klart definere programmets omfang
- Anvend testteknikker såsom ækvivalensklasser, grænseværdianalyse og fejlgætning og skriv testcases til API'en
- Inputparametre for API'en skal planlægges og defineres korrekt
- Udfør testcaserne og sammenlign forventede og faktiske resultater.
Forskellen 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 kan ikke få adgang til kildekoden |
UI-test er også involveret | Kun API-funktioner testes |
Kun grundlæggende funktionaliteter testes | Alle funktionelle problemer er testet |
Begrænset i omfang | Bredere i omfang |
Løb normalt før check-in | Testkørsel efter build er oprettet |
Sådan testes API
API-automatiseringstest bør mindst dække følgende testmetoder bortset fra den sædvanlige SDLC-proces
- Opdagelsestest: Testgruppen skal manuelt udføre det sæt af opkald, der er dokumenteret i API'en, såsom at verificere, at en specifik ressource, der er eksponeret af API'en, kan vises, oprettes og slettes efter behov
- Usability test: 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 er krypteret over HTTP eller begge dele
- Automatiseret test: API-testning bør kulminere i oprettelsen af et sæt scripts eller et værktøj, der kan bruges til at udføre API'en regelmæssigt
- Dokumentation: Testteamet skal sikre sig, at dokumentationen er tilstrækkelig og giver tilstrækkelig information til at interagere med API'en. Dokumentation bør være en del af den endelige leverance
Bedste praksis for API-testning:
- API-testtilfælde bør grupperes efter testkategori
- Oven på hver test skal du medtage erklæringerne om de API'er, der kaldes til.
- Valg af parametre skal udtrykkeligt nævnes i selve testcasen
- Prioriter API-funktionskald, så det bliver nemt for testere at teste
- Hver testcase bør være så selvstændig og uafhængig af afhængigheder som muligt
- Undgå "test chaining" i din udvikling
- Der skal udvises særlig forsigtighed, når du håndterer engangsopkaldsfunktioner som – Slet, Luk vindue osv...
- Opkaldssekvensering skal udføres og planlægges godt
- For at sikre fuldstændig testdækning skal du oprette API-testcases for alle mulige inputkombinationer af API'en.
Typer af fejl, som API-test opdager
- Undlader at håndtere fejltilstande elegant
- Ubrugte flag
- Manglende eller dublerede funktionalitet
- Pålidelighedsproblemer. Svært ved at forbinde og få svar fra API.
- Sikkerhedsproblemer
- Problemer med flere tråde
- Præstationsproblemer. API-svartiden er meget høj.
- Ukorrekte fejl/advarsel til en opkalder
- Forkert håndtering af gyldige argumentværdier
- Svardata er ikke struktureret korrekt (JSON eller XML)
Sådan laver du API Test Automation
1) ReadyAPI
ReadyAPI er et førende værktøj til funktions-, sikkerheds- og belastningstest af RESTful, SOAP, GraphQL og andre webtjenester. På én intuitiv platform får du tre kraftfulde værktøjer: ReadyAPI Test, ReadyAPI Performance og ReadyAPI Virtualization. Med disse værktøjer kan du udføre funktions-, sikkerheds- og ydeevne/belastningstest. Du kan også håne API og webtjenester med vores robuste virtualiseringsværktøj. Derudover kan du nemt integrere din CI/CD pipeline under hver bygning.
Nøglefunktioner
- ReadyAPI kan integreres i ethvert miljø.
- Den har en Smart Assertion-funktion, der hurtigt kan skabe bulk-påstande mod hundredvis af endepunkter.
- Native support til Git, Docker, Jenkins, AzureOsv
- Understøtter kommandolinje til automatiseret test.
- Understøtter parallel udførelse af funktionstest og jobkø.
- Promotes kode genbrug
- Fjerner afhængigheder under test og udvikling.
14-dages gratis prøveperiode (intet kreditkort påkrævet)
Følgende selvstudier giver en detaljeret guide til automatisering af API-test.
Desuden er der andre værktøjer til API-testning. Tjek dem link.
Udfordringer ved API-testning
Udfordringer ved API-test omfatter:
- De største udfordringer i web-API-testning er Parameterkombination, parametervalg og opkaldssekvens
- Der er ingen tilgængelig GUI at teste applikationen, som gør det er svært at give inputværdier
- Validering og verificering af output i et andet system er lidt svært for testere
- Parametrevalg og kategorisering er påkrævet for at være kendt af testerne
- Undtagelseshåndteringsfunktion skal testes
- Kodningsviden 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 i API-applikationen, men også i den kaldende applikation. Det er en uundværlig test i software engineering.