Vodič za testiranje API-ja: Što je automatizacija testiranja API-ja?
⚡ Pametni sažetak
API testiranjem se validiraju sučelja za programiranje aplikacija kako bi se osigurala funkcionalnost, pouzdanost, performanse i sigurnost korištenjem poziva temeljenih na kodu, a ne interakcija putem grafičkog korisničkog sučelja.

Što je API testiranje?
API testiranje je vrsta testiranja softvera koja provjerava sučelja za programiranje aplikacija (API). Svrha API testiranja je provjeriti funkcionalnost, pouzdanost, performanse i sigurnost programskih sučelja. U testiranju API-ja, umjesto korištenja standardnih korisničkih unosa (tipkovnica) i izlaza, koristite softver za slanje poziva API-ju, dobivanje izlaza i bilježenje odgovora sustava. API testovi jako se razlikuju od GUI testova i neće se usredotočiti na izgled i dojam aplikacije. Uglavnom se koncentrira na sloj poslovne logike softverske arhitekture.
Za pozadinu, API (sučelje aplikacijskog programiranja) je računalno sučelje koje omogućuje komunikaciju i razmjenu podataka između dva odvojena programska sustava. Softverski sustav koji izvršava API uključuje nekoliko funkcija/podrutina koje drugi softverski sustav može izvesti. API definira zahtjeve koji se mogu postavljati, kako postavljati zahtjeve, formate podataka koji se mogu koristiti itd. između dva softverska sustava.
Postavljanje okruženja za automatizaciju testiranja API-ja
Testiranje automatizacije API-ja zahtijeva aplikaciju s kojom se može komunicirati putem API-ja. Za testiranje API-ja trebat će vam:
- Koristite alat za testiranje za pokretanje API-ja
- Napišite vlastiti kod za testiranje API-ja
Nekoliko točaka koje treba napomenuti:
- API testiranje razlikuje se od ostalih vrsta testiranja jer GUI nije dostupan i morate postaviti okruženje koje poziva API s potrebnim parametrima, a zatim pregledava rezultate testiranja.
- Postavljanje testnog okruženja za automatizirano testiranje API-ja čini se malo složenim.
- Baza podataka i poslužitelj trebaju biti konfigurirani prema zahtjevima aplikacije.
- Nakon što je instalacija završena, treba pozvati API funkciju kako bi se provjerilo radi li taj API.
Vrste izlaza API-ja
Izlaz API-ja može biti:
- Bilo koja vrsta podataka
- Status (recimo prošao ili nije prošao)
- Pozovite drugu API funkciju.
Bilo koja vrsta podataka
Primjer: postoji API funkcija koja bi trebala zbrojiti dva cijela broja.
Long add(int a, int b)
Brojevi se moraju dati kao ulazni parametri. Izlaz bi trebao biti zbroj dvaju cijelih brojeva. Ovaj izlaz treba provjeriti s očekivanim ishodom.
add (1234, 5656)
Iznimke se moraju obraditi ako broj premašuje ograničenje cijelog broja.
Status (Prošao ili Pao)
Razmotrite sljedeće API funkcije:
- Zaključaj()
- Otključati()
- Izbrisati()
Kao izlaz vraćaju bilo koju vrijednost poput True (u slučaju uspjeha) ili False (u slučaju pogreške). Točniji testni slučaj pozivao bi funkcije u bilo kojem od skripti i kasnije provjeravao promjene u bazi podataka ili u grafičkom korisničkom sučelju aplikacije.
Pozivanje drugog API-ja / događaja
U ovom slučaju pozivamo jednu od API funkcija koja će zauzvrat pozvati drugu funkciju. Na primjer – Prva API funkcija može se koristiti za brisanje određenog zapisa u tablici, a ta funkcija zauzvrat poziva drugu funkciju za OSVJEŽAVANJE baze podataka.
Testni slučajevi za testiranje API-ja
Testni slučajevi API testiranja temelje se na:
- Povratna vrijednost na temelju uvjeta unosa: relativno ga je lako testirati, jer se unos može definirati i rezultati mogu biti autentificirani
- Ne vraća ništa: Kada nema povratne vrijednosti, treba provjeriti ponašanje API-ja na sustavu
- Pokreni neki drugi API/događaj/prekid: Ako izlaz API-ja pokrene neki događaj ili prekid, te događaje i slušatelje prekida treba pratiti
- Ažurirajte strukturu podataka: Ažuriranje strukture podataka imat će određeni ishod ili učinak na sustav i to bi trebalo biti autentificirano
- Izmijenite određene resurse: Ako API poziv modificira neke resurse, valjanost treba potvrditi pristupom odgovarajućim resursima
API pristup testiranju
Pristup testiranju API-ja je unaprijed definirana strategija ili metoda koju će QA tim primijeniti kako bi proveo testiranje API-ja nakon što je izrada spremna. Ovo testiranje ne uključuje izvorni kod. Pristup testiranju API-ja pomaže u boljem razumijevanju funkcionalnosti, tehnika testiranja, ulaznih parametara i izvršavanja testnih slučajeva.
Sljedeće točke pomažu u usmjeravanju pristupa testiranju API-ja:
- Razumijevanje funkcionalnosti API programa i jasno definiranje opsega programa
- Primijenite tehnike testiranja kao što su klase ekvivalencije, analiza graničnih vrijednosti i nagađanje pogrešaka i napišite testne slučajeve za API
- Ulazni parametri za API moraju biti odgovarajuće planirani i definirani
- Izvršite testne slučajeve i usporedite očekivane i stvarne rezultate.
Kako testirati API
Testiranje automatizacije API-ja trebalo bi obuhvatiti barem sljedeće metode testiranja, osim uobičajenog SDLC procesa:
- Testiranje otkrića: Testna grupa trebala bi ručno izvršiti skup poziva dokumentiranih u API-ju, kao što je provjera da se određeni resurs koji API izlaže može navesti, izraditi i obrisati prema potrebi
- Testiranje upotrebljivosti: Ovo testiranje provjerava je li API funkcionalan i jednostavan za korištenje. I integrira li se API dobro i s drugom platformom
- Sigurnosno testiranje: Ovo testiranje uključuje koja je vrsta provjere autentičnosti potrebna i jesu li osjetljivi podaci šifrirani putem HTTP-a ili oboje
- Automatsko testiranje: Testiranje API-ja trebalo bi kulminirati stvaranjem skupa skripti ili alata koji se može koristiti za redovito izvršavanje API-ja
- Dokumentacija: Testni tim mora osigurati da je dokumentacija odgovarajuća i da pruža dovoljno informacija za interakciju s API-jem. Dokumentacija bi trebala biti dio konačnog rezultata
Razlika između API testiranja i jediničnog testiranja
| Ispitivanje jedinice | API testiranje |
|---|---|
| Programeri to izvode | Ispitivači to izvode |
| Testirana je zasebna funkcionalnost | Funkcionalnost od kraja do kraja je testirana |
| Programer može pristupiti izvornom kodu | Testeri ne mogu pristupiti izvornom kodu |
| Uključeno je i testiranje korisničkog sučelja | Testiraju se samo API funkcije |
| Testiraju se samo osnovne funkcionalnosti | Sve funkcionalne poteškoće su testirane |
| Ograničen opseg | Širi opseg |
| Obično se izvodi prije prijave | Probno pokretanje nakon izrade međuverzije |
Najbolje prakse testiranja API-ja
- API testni slučajevi trebaju biti grupirani po kategoriji testiranja.
- Povrh svakog testa trebali biste uključiti deklaracije API-ja koji se pozivaju.
- Odabir parametara treba biti eksplicitno spomenut u samom testnom slučaju.
- Dajte prioritet pozivima API funkcija kako bi testerima bilo lako testirati.
- Svaki testni slučaj treba biti što samostalan i neovisan od ovisnosti.
- Izbjegavajte "lančanje testova" u svom razvoju.
- Poseban oprez potreban je pri rukovanju jednokratnim pozivima funkcija poput Delete, CloseWindow itd.
- Redoslijed poziva treba biti izveden i dobro isplaniran.
- Kako biste osigurali potpunu pokrivenost testom, izradite API testne slučajeve za sve moguće ulazne kombinacije API-ja.
Vrste grešaka koje otkriva testiranje API-ja
- Ne uspijeva elegantno riješiti uvjete pogreške
- Neiskorištene zastave
- Nedostaje ili je duplicirana funkcija
- Problemi s pouzdanošću, uključujući poteškoće s povezivanjem i dobivanjem odgovora od API-ja
- Sigurnosni problemi
- Problemi s multi-threadingom
- Problemi s performansama gdje je vrijeme odgovora API-ja vrlo kratko
- Neprikladne pogreške/upozorenje pozivatelju
- Netočno rukovanje valjanim vrijednostima argumenata
- Podaci odgovora nisu ispravno strukturirani (JSON ili XML)
Kako napraviti automatizaciju API testiranja
Sljedeći vodiči pružaju detaljne upute za automatizaciju testiranja API-ja:
- Kako testirati API sa BUDITE UVJERENI
- Kako testirati API sa Postman
- Kako testirati API s UFT-om
Osim toga, postoje i drugi alati za testiranje API-ja.
Kako umjetna inteligencija transformira testiranje API-ja
Umjetna inteligencija mijenja API testiranje automatizacijom ručnih zadataka. Algoritmi strojnog učenja mogu analizirati API specifikacije, generirati testne slučajeve i identificirati rubne slučajeve koje bi ljudski testeri mogli previdjeti.
Umjetna inteligencija također poboljšava sigurnosno testiranje otkrivanjem ranjivosti. Međutim, umjetna inteligencija trebala bi nadopuniti, a ne zamijeniti ljudsku stručnost, jer inženjeri osiguranja kvalitete donose znanje iz domene koje umjetna inteligencija ne može replicirati.
Izazovi API testiranja
- Glavni izazovi u testiranju web API-ja su kombiniranje parametara, odabir parametara i redoslijed poziva.
- Nema dostupnog grafičkog korisničkog sučelja za testiranje aplikacije, što otežava zadavanje ulaznih vrijednosti.
- Validacija i provjera izlaza u drugom sustavu je malo teška za testere.
- Ispitivači moraju znati odabir i kategorizaciju parametara.
- Potrebno je testirati funkciju obrade iznimki.
- Znanje kodiranja je neophodno za testere.
Zaključak
API se sastoji od skupa klasa/funkcija/procedura koje predstavljaju sloj poslovne logike. Ako API nije ispravno testiran, to može uzrokovati probleme ne samo u API aplikaciji nego iu aplikaciji koja poziva. To je neizostavan test u programskom inženjerstvu.



