Vodič za testiranje API-ja: Što je automatizacija testiranja API-ja?
Š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
API automatizacija Testiranje zahtijeva aplikaciju s kojom se može komunicirati putem API-ja. Da biste testirali API, morat ćete
- Koristite alat za testiranje za pokretanje API-ja
- Napišite vlastiti kod za testiranje API-ja
Treba napomenuti nekoliko točaka
- Testiranje API-ja razlikuje se od drugih vrsta testiranja softvera jer GUI nije dostupan, a ipak morate postaviti početno okruženje koje poziva API sa potrebnim skupom parametara i zatim konačno ispitati rezultat testa.
- Stoga se postavljanje okruženja za testiranje za testiranje automatizacije API-ja čini malo složenim.
- Baza podataka i poslužitelj trebaju biti konfigurirani prema zahtjevima aplikacije.
- Nakon što je instalacija obavljena, treba pozvati API funkciju da provjeri radi li taj API.
Vrste izlaza API-ja
Izlaz API-ja bi mogao biti
- Bilo koja vrsta podataka
- Status (recimo prošao ili nije prošao)
- Pozovite drugu API funkciju.
Pogledajmo primjer svake od gore navedenih vrsta u ovom vodiču za testiranje API-ja
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.
Pozivanje treba obaviti kao npr
add (1234, 5656)
Iznimke se moraju riješiti ako broj premašuje ograničenje cijelog broja.
Status (recimo prošao ili nije prošao)
Razmotrite donju API funkciju –
- Zaključaj()
- Otključati()
- Izbrisati()
Vraćaju bilo koju vrijednost kao što je True (u slučaju uspjeha) ili false (u slučaju pogreške) kao izlaz.
Točniji Testni slučaj može pozvati funkcije u bilo kojoj od skripti i kasnije provjeriti ima li promjena u bazi podataka ili GUI 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 funkcija API-ja može se koristiti za brisanje određenog zapisa u tablici, a ova funkcija zauzvrat poziva drugu funkciju za OSJEŽAVANJE baze podataka.
Testni slučajevi za API testiranje:
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
API pristup testiranju je unaprijed definirana strategija ili metoda koju će QA tim izvesti kako bi proveo testiranje API-ja nakon što je izrada spremna. Ovo testiranje ne uključuje izvorni kod. API pristup testiranju pomaže boljem razumijevanju funkcionalnosti, tehnika testiranja, ulaznih parametara i izvršavanja testnih slučajeva.
Sljedeće točke pomažu korisniku da pristupi 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
- Ulazne parametre za API treba planirati i definirati na odgovarajući način
- Izvršite testne slučajeve i usporedite očekivane i stvarne rezultate.
Razlika između API testiranja i testiranja jedinica
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 trčanje prije prijave | Probno pokretanje nakon izrade međuverzije |
Kako testirati API
Testiranje automatizacije API-ja trebalo bi pokriti 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
Najbolji primjeri API testiranja:
- API testni slučajevi trebaju biti grupirani prema kategoriji testa
- Povrh svakog testa trebali biste uključiti deklaracije API-ja koji se pozivaju.
- Odabir parametara treba eksplicitno navesti u samom testnom slučaju
- Dajte prioritete pozivima API funkcija kako bi testerima bilo lako testirati ih
- Svaki testni slučaj trebao bi biti što je moguće samostalniji i neovisan o ovisnostima
- Izbjegavajte "ulančavanje testova" u svom razvoju
- Morate biti posebno oprezni pri rukovanju funkcijama jednokratnog poziva kao što su – Brisanje, Zatvori prozor, itd.
- Redoslijed poziva treba izvesti i dobro isplanirati
- Kako biste osigurali potpunu pokrivenost testom, izradite API testne slučajeve za sve moguće ulazne kombinacije API-ja.
Vrste grešaka koje API testiranje otkriva
- Ne uspijeva elegantno riješiti uvjete pogreške
- Neiskorištene zastave
- Nedostaje ili je duplicirana funkcija
- Problemi s pouzdanošću. Poteškoće u povezivanju i dobivanju odgovora od API.
- Sigurnosni problemi
- Problemi s multi-threadingom
- Problemi s izvedbom. API vrijeme odgovora je vrlo visoko.
- Neprikladne pogreške/upozorenje pozivatelju
- Netočno rukovanje valjanim vrijednostima argumenata
- Podaci o odgovoru nisu pravilno strukturirani (JSON ili XML)
Kako napraviti automatizaciju testiranja API-ja
1) ReadyAPI
ReadyAPI je vodeći alat za funkcionalno, sigurnosno i testiranje opterećenja RESTfula, SOAP-a, GraphQL-a i drugih web usluga. U jednoj intuitivnoj platformi dobit ćete tri moćna alata: ReadyAPI Test, ReadyAPI Performance i ReadyAPI Virtualization. Pomoću ovih alata možete izvršiti funkcionalno, sigurnosno i testiranje performansi/opterećenja. Također možete ismijavati API i web usluge s našim robusnim alatom za virtualizaciju. Osim toga, možete jednostavno integrirati svoj CI/CD cjevovod tijekom svake izgradnje.
Glavne značajke
- ReadyAPI se može integrirati u bilo koje okruženje.
- Ima značajku pametne tvrdnje koja može brzo stvoriti skupne tvrdnje protiv stotina krajnjih točaka.
- Izvorna podrška za Git, Docker, Jenkins, Azure, Itd
- Podržava naredbeni redak za automatizirano testiranje.
- Podržava paralelno izvođenje funkcionalnih testova i čekanja poslova.
- Promoponovno korištenje tog koda
- Uklanja ovisnosti tijekom testiranja i razvoja.
14-dnevno besplatno probno razdoblje (nije potrebna kreditna kartica)
Sljedeći vodiči pružaju detaljan vodič za automatiziranje API testa.
Osim toga, postoje i drugi alati za API testiranje. Provjerite ih ovdje
Izazovi API testiranja
Izazovi API testiranja uključuju:
- Glavni izazovi u testiranju Web API-ja su Kombinacija parametara, odabir parametara i redoslijed poziva
- GUI nije dostupan za testiranje aplikacije, što čini teško je dati ulazne vrijednosti
- Validacija i provjera izlaza u drugom sustavu malo je teška za testere
- Odabir parametara i kategorizacija moraju biti poznati ispitivačima
- Funkcija rukovanja iznimkama treba testirati
- Testerima je neophodno znanje kodiranja
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.