API testimise õpetus: mis on API testimise automatiseerimine?
⚡ Nutikas kokkuvõte
API testimine valideerib rakendusliideseid, et tagada funktsionaalsus, töökindlus, jõudlus ja turvalisus, kasutades koodipõhiseid kõnesid, mitte GUI-interaktsioone.

Mis on API testimine?
API testimine on tarkvara testimise tüüp, mis kinnitab rakendusprogrammeerimisliideseid (API-sid). API testimise eesmärk on kontrollida programmeerimisliideste funktsionaalsust, töökindlust, jõudlust ja turvalisust. API testimises kasutate standardsete kasutajasisendite (klaviatuuri) ja väljundite asemel tarkvara API-le kõnede saatmiseks, väljundi hankimiseks ja süsteemi vastuse ülesmärkimiseks. API-testid erinevad GUI-testidest vägagi ega keskendu rakenduse välimusele ega olemusele. See keskendub peamiselt tarkvaraarhitektuuri äriloogikakihile.
Taustaks API (rakenduse programmeerimise liides) on arvutusliides, mis võimaldab sidet ja andmevahetust kahe eraldiseisva tarkvarasüsteemi vahel. API-d käivitav tarkvarasüsteem sisaldab mitmeid funktsioone/alamprogramme, mida teine tarkvarasüsteem saab täita. API määratleb kahe tarkvarasüsteemi vahel esitatavad päringud, taotluste tegemise, kasutatavad andmevormingud jne.
API testimise automatiseerimiskeskkonna seadistamine
API automatiseeritud testimiseks on vaja rakendust, millega saab API kaudu suhelda. API testimiseks peate tegema järgmist:
- Kasutage API juhtimiseks testimistööriista
- API testimiseks kirjutage oma kood
Mõned punktid, mida tähele panna:
- API testimine erineb teistest testimistüüpidest selle poolest, et graafilist kasutajaliidest pole saadaval ja peate looma keskkonna, mis käivitab API vajalike parameetritega ja seejärel uurib testi tulemusi.
- API automatiseerimise testimiseks testimiskeskkonna loomine tundub pisut keeruline.
- Andmebaas ja server tuleks konfigureerida vastavalt rakenduse nõuetele.
- Kui installimine on lõppenud, tuleks API funktsiooni kutsuda, et kontrollida, kas API töötab.
API väljundi tüübid
API väljund võiks olla:
- Igat tüüpi andmed
- Olek (öelge läbitud või ebaõnnestunud)
- Kutsuge välja mõni muu API-funktsioon.
Mis tahes tüüpi andmed
Näide: on API funktsioon, mis peaks lisama kaks täisarvu.
Long add(int a, int b)
Numbrid tuleb sisestada sisendparameetritena. Väljund peaks olema kahe täisarvu liitmine. Seda väljundit tuleb oodatava tulemusega kontrollida.
add (1234, 5656)
Erandeid tuleb käsitleda, kui arv ületab täisarvu piiri.
Staatus (läbitud või mitteläbitud)
Mõelge järgmistele API funktsioonidele:
- Lukk()
- Ava ()
- Kustuta()
Nad tagastavad väljundina mis tahes väärtuse, näiteks True (õnnestumise korral) või False (vea korral). Täpsem testjuhtum kutsuks välja mis tahes skripti funktsioone ja kontrolliks hiljem muudatusi kas andmebaasis või rakenduse graafilises kasutajaliideses.
Teise API/sündmuse kutsumine
Sel juhul kutsume ühe API funktsiooni, mis omakorda kutsub teise funktsiooni. Näiteks – esimest API funktsiooni saab kasutada tabelis kindla kirje kustutamiseks ja see funktsioon omakorda kutsub teise funktsiooni andmebaasi värskendamiseks.
API testimise testijuhtumid
API testimise testjuhtumid põhinevad:
- Sisendtingimusel põhinev tagastusväärtus: seda on suhteliselt lihtne testida, kuna sisendit saab defineerida ja tulemusi autentida
- Ei tagasta midagi: Kui tagastusväärtust pole, tuleb kontrollida API käitumist süsteemis
- Käivitage mõni muu API/sündmus/katkestus: Kui API väljund käivitab mingi sündmuse või katkestuse, siis peaksid need sündmused ja katkestuste kuulajad olema tracked
- Värskenda andmestruktuuri: Andmestruktuuri värskendamine avaldab süsteemile teatud tulemust või mõju ja see tuleks autentida
- Teatud ressursside muutmine: Kui API kutse muudab mõnda ressurssi, tuleb see vastavatele ressurssidele juurdepääsu kaudu kinnitada
API testimisviis
API testimise lähenemisviis on eelnevalt määratletud strateegia või meetod, mida kvaliteedikontrolli meeskond kasutab API testimiseks pärast versiooni valmimist. See testimine ei hõlma lähtekoodi. API testimise lähenemisviis aitab paremini mõista funktsioone, testimistehnikaid, sisendparameetreid ja testide käivitamist.
Järgmised punktid aitavad suunata API testimise lähenemisviisi:
- API programmi funktsionaalsuse mõistmine ja programmi ulatuse selge määratlemine
- Rakendage testimistehnikaid, nagu ekvivalentsusklassid, piirväärtuste analüüs ja vigade arvamine ning kirjutage API jaoks testjuhtumid
- API sisendparameetrid tuleb sobivalt planeerida ja määratleda.
- Tehke testjuhtumid ja võrrelge eeldatavaid ja tegelikke tulemusi.
API testimine
API automatiseerimise testimine peaks lisaks tavapärasele SDLC protsessile hõlmama vähemalt järgmisi testimismeetodeid:
- Avastustestid: Testrühm peaks käsitsi täitma API-s dokumenteeritud kõnede komplekti, näiteks kontrollima, kas API-ga eksponeeritud konkreetset ressurssi saab loendisse lisada, luua ja vajadusel kustutada.
- Kasutatavuse testimine: See testimine kontrollib, kas API on funktsionaalne ja kasutajasõbralik. Ja kas API integreerub hästi ka teise platvormiga
- Turvatestimine: See testimine hõlmab seda, millist autentimist on vaja ja kas tundlikud andmed krüpteeritakse HTTP või mõlema kaudu
- Automatiseeritud testimine: API testimine peaks lõppema skriptide komplekti või tööriista loomisega, mida saab kasutada API regulaarseks käivitamiseks
- Dokumentatsioon: Testimismeeskond peab veenduma, et dokumentatsioon on piisav ja sisaldab API-ga suhtlemiseks piisavalt teavet. Dokumentatsioon peaks olema lõpptoote osa
Erinevus API testimise ja ühiktestimise vahel
| Üksuse testimine | API testimine |
|---|---|
| Arendajad teevad seda | Testijad teevad seda |
| Katsetatakse eraldi funktsionaalsust | Katsetatakse otsast lõpuni funktsionaalsust |
| Arendaja pääseb ligi lähtekoodile | Testijad ei pääse lähtekoodile juurde |
| Kaasatud on ka kasutajaliidese testimine | Testitakse ainult API funktsioone |
| Testitakse ainult põhifunktsioone | Kõik funktsionaalsed probleemid on testitud |
| Piiratud ulatusega | Laiem ulatus |
| Tavaliselt käivitatakse enne registreerimist | Testkäivitamine pärast ehituse loomist |
API testimise parimad tavad
- API testijuhtumid tuleks rühmitada testikategooriate kaupa.
- Iga testi peale peaksite lisama kutsutavate API-de deklaratsioonid.
- Parameetrite valik peaks testikirjelduses endas selgesõnaliselt mainitud olema.
- Prioriseeri API funktsioonikõnesid, et testijatel oleks neid lihtne testida.
- Iga testjuhtum peaks olema võimalikult iseseisev ja sõltuvustest sõltumatu.
- Väldi oma arenduses "testide aheldamist".
- Eriti ettevaatlik tuleb olla ühekordsete funktsioonide (nt Kustuta, Sulge aken jne) käsitlemisel.
- Kõnede järjestamine peaks olema teostatud ja hästi planeeritud.
- Testi täieliku katvuse tagamiseks looge API testjuhtumid API kõigi võimalike sisendkombinatsioonide jaoks.
API-testimise käigus tuvastatud vigade tüübid
- Ei suuda veatingimusi graatsiliselt käsitleda
- Kasutamata lipud
- Puuduv või dubleeritud funktsioon
- Usaldusväärsusprobleemid, sealhulgas raskused ühenduse loomisel ja API-lt vastuse saamisel
- Julgeolekuküsimused
- Mitme keermega seotud probleemid
- Jõudlusprobleemid, mille korral API reageerimisaeg on väga pikk
- Valed vead/hoiatus helistajale
- Kehtivate argumentide väärtuste vale käsitlemine
- Vastuseandmed pole õigesti struktureeritud (JSON või XML)
Kuidas API testimise automatiseerimist teha
Järgnevalt on toodud üksikasjalikud juhised API testimise automatiseerimiseks:
- Kuidas testida API-t REST kindel
- Kuidas testida API-t Postman
- Kuidas testida API-t UFT
Pealegi on ka teisi API testimise tööriistad.
Kuidas tehisintellekt muudab API testimist
Tehisintellekt on reshaping API testimine käsitsi tehtavate ülesannete automatiseerimise teel. Masinõppe algoritmid saavad analüüsida API spetsifikatsioone, genereerida testjuhtumeid ja tuvastada äärmusjuhtumeid, mida inimtestijad võivad kahe silma vahele jätta.
Tehisintellekt täiustab ka turvatestimist haavatavuste tuvastamise kaudu. Tehisintellekt peaks aga pigem täiendama kui asendama inimeste teadmisi, kuna kvaliteedikontrolli insenerid toovad kaasa valdkonnaalaseid teadmisi, mida tehisintellekt ei suuda korrata.
API testimise väljakutsed
- Veebi API testimise peamised väljakutsed on parameetrite kombineerimine, parameetrite valik ja kõnede järjestamine.
- Rakenduse testimiseks puudub graafiline kasutajaliides, mis raskendab sisendväärtuste sisestamist.
- Väljundi valideerimine ja kontrollimine teises süsteemis on testijate jaoks veidi keeruline.
- Parameetrite valik ja kategoriseerimine peavad olema testijatele teada.
- Erandite käsitlemise funktsiooni tuleb testida.
- Testijatele on kodeerimisalased teadmised hädavajalikud.
Järeldus
API koosneb klasside/funktsioonide/protseduuride komplektist, mis esindavad äriloogika kihti. Kui API-t korralikult ei testita, võib see põhjustada probleeme mitte ainult API rakenduses, vaid ka helistavas rakenduses. See on tarkvaratehnikas asendamatu test.



