Aller au contenu

Testiranje REST API-ja u 5 minuta

Cilj: krenuti od OpenAPI specifikacije i doći do automatiziranog testa koji provjerava cjelovit put.

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

Restorm gradi cjelovito stablo: po jednu mapu za svaku etiketu, po jedan zahtjev za svaku operaciju, tipizirane parametre, dokumentaciju i unaprijed ožičena zaglavlja autentifikacije s njihovim varijablama.

Stablo koje je proizveo OpenAPI uvoz, spremno za upotrebu: po jedna mapa za svaku etiketu (pet, store, user) i po jedan unaprijed popunjen zahtjev za svaku operaciju, uz početnu podkarticu mape okruženja

Ako vaš API nema specifikaciju, zalijepite naredbu curl — pogledajte Uvoz cURL naredbi.

Otvorite mapu okruženja koju je stvorio uvoz. Osnovni je URL već ondje; dopunite varijablu autentifikacije koju je uvoz pripremio umjesto vas.

Stvorite drugo okruženje ako testirate više odredišta — birač u smartbaru prebacuje cijelu mapu odjednom.

Otvorite zahtjev i kliknite Send. Prikazuje se odgovor: status, vrijeme, zaglavlja, tijelo u pregledniku sa sklopivim čvorovima.

Ako ste nešto zaboravili, razriješena vrijednost prikazana ispod polja URL-a to će vam reći.

Desni klik ▸ Dodaj ▸ Scenarij. Put „stvori, ponovno pročitaj, izbriši”:

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

Sva tri zahtjeva u svojem URL-u koriste {{clientId}}: varijablu izvođenja postavljenu u prvom koraku čitaju sljedeći.

Ulančajte ih ožičavanjem porta done svake tvrdnje na port in sljedećeg zahtjeva — to jamči redoslijed.

Kliknite Pokreni. Zapisnik se puni; dodajte akciju Log nakon svakog koraka kako biste zabilježili ono što je bitno.

Priključ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, inače 1. Pogledajte Headless izvođenje i CI za primjere za GitHub Actions i GitLab CI.