// Jejson je obicni tekstualni fajl (Json)
// restfullAPI
// deli se na front end i back end developere
// dokumentacija struktura apija i base podataka
// get i post poruke se najvise koriste
// get je previse otvoren, sve putuju kroz url i otvoren je, sto znaci da ne zelimo da se vide broj kartice za placanje
// slicno pa se koristi vise post
// delete
// morpheus znaci vodja
// sa svakom porukom server vraca odgovor
// postman je dobra dokumentacija, kad se radi sa servisima imamo dokumentaciju API liste poziva za sve sta se desava
//
https://www.getpostman.com///
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status//
https://learning.getpostman.com/docs/postman/launching-postman/introduction/Napisati tri zahteva u postmanu, objasniti ih uz jednu recenicu i postaviti na drajvu.
Literatura i API
https://jsonplaceholder.typicode.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Statushttps://reqres.in/
Automatizacija API testova pomoću Postmena
Test API
https://vue-demo.daniel-avellaneda.com/ Klijent za API koji se testira
https://vue-demo.daniel-avellaneda.com/Dokumentacija Rest API-a je yaml fajl, koji otvarate u Swagger editoru tako što izaberete File > Import File > izaberete pomenuti yaml fajl
Koristan video trening: Testiranje API-a pomoću Postmena možete kupiti na udemy-u ili skinuti sa ovo linka.
Da bismo uspešno istestirali API, moramo se prvo upoznati sa logikom i videti u kojim situacijama se koriste dati API pozivi. U tome će nam dosta pomoći analiza same klijentske aplikacije. Potrebno je upoznati se sa aplikacijom, i saznati što više informacija za svaki od navedenih api poziva. Sve potrebne informacije možete naći u Network prozoru kao na slici 1.
Slika 1. Praćenje API poziva iz Network prozora
Na kraju dolazimo do prvog zadatka, a to je:
U eksel tabeli, klonirajte sheet Sablon i nazovite ga svojim imenom a zatim popunite tabelu.
Za razmevanje procesa prijavljivanja i svrhe u koju se koristi token, potrebno je upoznati se sa JWT tokenom. Koristan video trening na tu temu možete pogledati na youtube-u.
2. Pisanje API-poziva u Postmenu
Smernice kojima bi se trebali voditi:
● imena poziva su ista kao imena ruta
● Upotreba globalnih promenljivi ili promenljivi okruženja za:
○ naziv host-a, npr: {{base_url}}/registracija (udemy, Writing tests and scripts using variables)
○ tokene (udemy, Authentication / Authorization > JSON Web Tokens (JWT))
○ promenljive podatke, npr: login podaci, id-evi,
● Podatke iz dokumentacije koji se šalju kao formData, šaljite u body kao x-www-form-urlencoded
Napomena 1: Validne vrednosti za user role su “admin” i “user”
Napomena 2: Token je deo zaglavlja i mora se unositi u formatu sa ključnom rečju Bearer {{token}}
3. Pisanje API testova
U Postmenu testovi se pišu u JavaScript-u, tako da bi bilo dobro upoznati se malo sa tim programskim jezikom (udemy: JavaScript fundamentals, Writing tests and scripts, Writing tests and scripts using variables, Advanced assertions, Running a request multiple times with different data sets, ...)
Primeri nekih osnovnih testova link (Otvorite u Postmanu klikom na dugme Run in Postman). Neki od njih su zastareli ali je moguce naći novu veriju na linku.
Postoji mnogo načina za kreiranje testova, ali moja stroga preporuka je koristiti Chai Assertion Library (udemy: Advanced assertions )
U početku će vam biti teže da se povežete sa testiranjem u Postmanu, preporuka je da za debugiranje koristite konzolu (udemy: Writing tests and scripts using variables > Debugging tests )
Potrebno je implementirati testove koji su navedeni u daljem tekstu. Postoje 4 logičke grupe testova:
● auth testovi
● city testovi
● profile testovi
● user testovi
Auth testovi
Primer zapazanja za rutu /register:
Opis:
Poziva se pri registraciji novog korisnika. Od podataka se salje: Ime i prezime, email i password (sva polja su obavezna)
Zakljucak/Opazanje:
Uspesna registracija vraca status 201, i u responsu imamo token i podatke za usera.
Kada se korisnik registruje podrazumevano mu je role = "user".
Nakon registarcije se dobija email za verifikaciju.
Pokusaj registracije korisnika sa istim email-om vraca status 422 i gresku EMAIL_ALREADY_EXISTS.
Sigurno moze jos nesto da se doda, ali ovo je na primer za mene dovoljno.