Aller au contenu

Testiranje REST API-ja za 5 minuta

Cilj: krenuti od OpenAPI specifikacije i stići do automatizovanog testa koji proverava kompletan tok.

Datoteka ▸ Uvezi (Ctrl+I), pa URL vašeg openapi.json-a.

Restorm gradi kompletno stablo: po jednu fasciklu za svaku etiketu, po jedan zahtev za svaku operaciju, tipizovane parametre, dokumentaciju i unapred povezana zaglavlja autentifikacije sa njihovim promenljivama.

Stablo koje proizvodi OpenAPI uvoz, spremno za upotrebu: po jedna fascikla za svaku etiketu (pet, store, user) i po jedan unapred popunjen zahtev za svaku operaciju, pored početne podkartice fascikle promenljivih

Ako vaš API nema specifikaciju, nalepite curl komandu — vidite Uvoz cURL komandi.

Otvorite fasciklu promenljivih koju je napravio uvoz. Osnovni URL je već tu; dopunite promenljivu autentifikacije koju je uvoz pripremio umesto vas.

Napravite drugo okruženje ako testirate više ciljeva — birač u smartbaru prebacuje celu fasciklu odjednom.

Otvorite zahtev, kliknite na Send. Odgovor se prikazuje: status, vreme, zaglavlja, telo u sklopivom pregledaču.

Ako ste nešto zaboravili, razrešena vrednost prikazana ispod URL polja to će vam reći.

Desni klik ▸ Dodaj ▸ Scenario. Tok „napravi, pročitaj, obriši”:

HTTP zahtev „POST /clients”
└─response──► Assert (eq, 201)
└─► Postavi promenljivu „clientId” ◄── selektor body.id
HTTP zahtev „GET /clients/{id}”
└─response──► Assert (eq, 200)
└─► Validacija šeme (JSON Schema klijenta)
HTTP zahtev „DELETE /clients/{id}”
└─response──► Assert (eq, 204)

Sva tri zahteva koriste {{clientId}} u svom URL-u: promenljivu izvršavanja postavljenu u prvom koraku čitaju naredni.

Povežite ih tako što ćete port done svake tvrdnje spojiti na port in narednog zahteva — to je ono što garantuje redosled.

Kliknite na Pokreni. Zapis se puni; dodajte akciju Log posle svakog koraka da biste zabeležili ono što je važno.

Povežite akciju Throw na izlaz else svojih ključnih tvrdnji: to je ono što će oboriti CI posao.

Terminal window
RESTORM_TOKEN=rstk_… restorm \
--open ./api.restorm \
--run "Parcours client" \
--headless \
--out run.log

Izlazni kod 0 ako sve prođe, 1 inače. Vidite Headless izvršavanje i CI za primere za GitHub Actions i GitLab CI.