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.

  • Põhifookus: Valideerib äriloogika kihti otseste API-kõnede kaudu.
  • Keskkonna seadistamine: Nõuab konfigureeritud andmebaase ja parameetritega testimiskeskkondi.
  • Testi kujundus: Hõlmab tagastusväärtusi, olekukoode ja ressursside muudatusi.
  • Testimismeetodid: Avastamine, kasutatavus, turvalisus ja automatiseeritud testimine.
  • AI integreerimine: Masinõpe automatiseerib testide genereerimist ja haavatavuste tuvastamist.

API testimine

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.

API testimine

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:

  1. Igat tüüpi andmed
  2. Olek (öelge läbitud või ebaõnnestunud)
  3. 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:

  1. Lukk()
  2. Ava ()
  3. 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

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.

API testimisviis

Järgmised punktid aitavad suunata API testimise lähenemisviisi:

  1. API programmi funktsionaalsuse mõistmine ja programmi ulatuse selge määratlemine
  2. Rakendage testimistehnikaid, nagu ekvivalentsusklassid, piirväärtuste analüüs ja vigade arvamine ning kirjutage API jaoks testjuhtumid
  3. API sisendparameetrid tuleb sobivalt planeerida ja määratleda.
  4. 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:

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.

KKK

API testimine valideerib äriloogikat koodipõhiste kõnede kaudu, samas kui GUI testimine kontrollib kasutajaliidese elemente klaviatuuri ja hiire sisendite abil. API testimine keskendub pigem andmevoogudele kui visuaalsele esitlusele.

Jah. Tööriistad nagu Postman pakuvad GUI-põhiseid liideseid, mis ei vaja kodeerimist. Täiustatud automatiseerimine aga saab kasu programmeerimisoskustest Java or Python.

HTTP olekukoodid näitavad vastuse tulemusi: 2xx edu korral, 4xx kliendi vigade korral, 5xx serveri vigade korral. Testimisel tuleb veenduda, et kõigi päringutüüpide puhul tagastatakse õiged koodid.

Tehisintellekt genereerib API spetsifikatsioonide põhjal testjuhtumeid, tuvastab äärmusjuhtumeid ja ennustab masinõppe abil defektidele kalduvaid alasid testimisstrateegiate optimeerimiseks.

Ei. Tehisintellektil puudub valdkonnaalane asjatundlikkus ja loominguline probleemide lahendamine. Parim lähenemisviis ühendab tehisintellekti automatiseerimise inimese järelevalvega maksimaalse efektiivsuse saavutamiseks.

Postman pakub tasuta koostööplaane. REST kindel on tasuta avatud lähtekoodiga Java raamistik. SoapUI, cURL ja JMeter pakuvad ka tasuta võimalusi.

Võta see postitus kokku järgmiselt: