Webes API-k tesztelése Postman Gyűjteményekkel

1. Bemutatkozás

A webes API alapos teszteléséhez valamilyen webes kliensre van szükségünk az API végpontjaihoz való hozzáféréshez. A Postman egy önálló eszköz, amely webes API-kat gyakorol azáltal, hogy HTTP-kéréseket küld a szolgáltatáson kívülről.

A Postman használatakor nem csak HTTP teszt infrastruktúra kódot kell írnunk. Ehelyett létrehozunk tesztcsomagokat, az úgynevezett gyűjteményeket, és hagyjuk, hogy a Postman interakcióba lépjen az API-val.

Ebben az oktatóanyagban megtudhatjuk, hogyan hozhatunk létre egy Postman Gyűjteményt, amely tesztelheti a REST API-t.

2. Beállítás

Mielőtt nekilátnánk a gyűjteményünknek, be kell állítanunk a környezetet.

2.1. A Postman telepítése

A Postman elérhető Linux, Mac és Windows rendszerekhez. Az eszköz letölthető és telepíthető a Postman webhelyről.

A splash screen elvetése után láthatjuk a felhasználói felületet:

2.2. A szerver futtatása

A Postásnak egy élő HTTP szerverre van szüksége a kérelmek feldolgozásához. Ehhez az oktatóanyaghoz egy korábbi Baeldung projektet fogunk használni, rugós bakancs-pihenő, amely elérhető a GitHub-on.

Ahogy a címből sejthetjük, tavaszi-bakancs-pihenés egy Spring Boot alkalmazás. Az alkalmazást a Maven céllal építjük telepítés. Miután elkészült, elindítjuk a szervert az egyedi Maven céllal rugós-bakancs: fut.

Annak ellenőrzésére, hogy a szerver fut-e, a böngészőnkben elérhetjük ezt az URL-t:

// localhost: 8082 / spring-boot-rest / auth / foos

Ez a szolgáltatás memóriában lévő adatbázist használ. A szerver leállításakor minden rekord törlődik.

3. Postás gyűjtemény létrehozása

A Postman gyűjteménye a HTTP kérések sorozata. A Postman elmenti a kérések minden aspektusát, beleértve a fejléceket és az üzenet törzseket is. Ebből kifolyólag, félig automatizált tesztként futtathatjuk a kéréseket egymás után.

Kezdjük egy új gyűjtemény létrehozásával. Kattintson a legördülő nyílra a Új gombot, és válassza a lehetőséget Gyűjtemény:

Amikor az TEREMTENI ÚJ GYŰJTEMÉNYET megjelenik a párbeszédpanel, megnevezhetjük gyűjteményünketfoo API teszt“. Végül rákattintunk a Teremt gombra kattintva új kollekciónk megjelenhet a bal oldali listában:

A gyűjteményünk létrehozása után a kurzort ráhúzva két menügomb jeleníthető meg. A nyílgomb megnyílik egy jobb oldali panel, amely hozzáférést biztosít a Gyűjtemény futó. Ezzel szemben az ellipszis gomb egy legördülő menüt nyit meg, amely számos műveletet tartalmaz a gyűjteményen.

4. POST kérés hozzáadása

4.1. Új kérelem létrehozása

Most, hogy üres gyűjteményünk van, adjunk hozzá egy kérést, amely eltalálja az API-t. Pontosabban küldjünk POST üzenetet az URI-nak / auth / foos. Ehhez, megnyitjuk gyűjteményünkben az ellipszis menüt és kiválasztjuk Add Request.

Amikor az KÉRÉS MENTÉSE megjelenik egy párbeszédpanel, adjunk meg egy leíró nevet, például:adjunk hozzá egy foo ”. Ezután kattintson a gombra Mentés a foo API tesztbe.

A kérelem létrehozása után láthatjuk, hogy gyűjteményünk jelzi egy kérés. Ha azonban a gyűjteményünk nem bővült, akkor még nem láthatjuk a kérést. Ebben az esetben a gyűjteményre kattintva kibővíthetjük.

Most látnunk kell az új kérelmet a gyűjteményünk alatt. Megfigyelhetjük, hogy az új kérés alapértelmezés szerint egy HTTP GET, amelyet nem szeretnénk. Ezt a következő szakaszban javítjuk:

4.2. A kérelem szerkesztése

A kérelem szerkesztéséhez kattintson rá, és töltse be a kérésszerkesztő fülre:

Bár a kérésszerkesztőnek számos lehetősége van, egyelőre csak néhányra van szükségünk.

Először is használjuk a legördülő menüt a módszer GET-ről POST-ra váltására.

Másodszor, szükségünk van egy URL-re. A módszer legördülő menüjének jobb oldalán található egy szövegmező a kérelem URL-jéhez. Tehát most írjuk be:

// localhost: 8082 / spring-boot-rest / auth / foos

Az utolsó lépés egy üzenet törzsének megadása. Az URL-cím alatt a fülfejlécek sora található. Kattintson a gombra Test fül fejlécével juthat el a törzsszerkesztőhöz.

Ban,-ben Test lapon, közvetlenül a szövegterület felett található egy sor rádiógomb és egy legördülő menü. Ezek vezérlik a kérelem formázását és tartalmi típusát.

Szolgáltatásunk elfogadja a JSON adatokat, ezért kiválasztjuk a nyers Rádiógomb. A jobb oldali legördülő menüben a JSON (alkalmazás / JSON) tartalom típus.

A kódolás és a tartalomtípus beállítása után hozzáadjuk JSON tartalmunkat a szövegterülethez:

{"name": "Transformers"}

Végül ne felejtsük el elmenteni a változtatásokat a megnyomásával Ctrl-S vagy üti a Mentés gomb. A Mentés gomb jobbra található Küld gomb. A mentés után láthatjuk, hogy a kérés POST-ra frissült a bal oldali listában:

5. A kérelem futtatása

5.1. Egyetlen kérés futtatása

Egyetlen kérés futtatásához egyszerűen kattintson a gombra Küld gomb az URL-címetől jobbra. Ha rákattintunk Küld, a válasz panel megnyílik a kérelem panel alatt. Szükség lehet a lefelé görgetésre a megtekintéshez:

Vizsgáljuk meg eredményeinket. Pontosabban, a fejléc sávban azt látjuk, hogy kérésünk a státusszal sikeres volt 201 Létrehozva. Továbbá a válasz test azt mutatja, hogy a Transzformátorok rekord 1 azonosítót kapott.

5.2. A Collection Runner használata

Szemben a Küld gombra kattintva a gyűjtemény futója egy teljes gyűjteményt kivitelezhet. A gyűjtemény futójának elindításához a kurzort az egér fölé helyezzük foo API teszt kattintson a jobb oldali nyílra. A jobb oldali panelen láthatjuk a Fuss gombra, tehát kattintsunk erre:

Amikor rákattintunk a Fuss gombra kattintva a gyűjtemény futója új ablakban nyílik meg. Mivel a gyűjteményünkből indítottuk, a futó már inicializálódik a gyűjteményünkbe:

A kollekció futója olyan lehetőségeket kínál, amelyek befolyásolják a tesztfutást, de erre a gyakorlatra nem lesz szükségünk. Menjünk közvetlenül a Futtassa a foo API tesztet gombra, és kattintson erre.

Amikor futtatjuk a gyűjteményt, a nézet a következőre változik: Eredmények futtatása. Ebben a nézetben látunk egy listát azokról a tesztekről, amelyek zöldek a sikerhez és pirosak a sikertelenséghez.

Annak ellenére, hogy megkeresésünket elküldtük, a futó jelzi, hogy nulla teszt sikeres volt, és nulla teszt nem sikerült. Ennek oka, hogy még nem adtunk hozzá teszteket kérésünkhöz:

6. A válasz tesztelése

6.1. Tesztek hozzáadása egy kérelemhez

Teszt létrehozásához térjünk vissza a kérésszerkesztő panelre, ahol felépítettük a POST módszerünket. Kattintson a Tesztek fül, amely az URL alatt található. Amikor ezt megtesszük, megjelenik a Tests panel:

A Tesztek panelbe olyan JavaScript-et írunk, amely akkor fog végrehajtódni, amikor a szervertől megkapja a választ.

A Postman beépített változókat kínál, amelyek hozzáférést biztosítanak a kéréshez és a válaszhoz. Ezenkívül számos JavaScript könyvtár importálható a igényel () szintaxis.

Túl sok a parancsfájl-szolgáltatás, amelyet át lehetne fedni ebben az oktatóanyagban. A hivatalos Postás dokumentáció azonban kiváló forrás ebben a témában.

Folytassuk három teszt hozzáadásával a kérésünkhöz:

pm.test ("sikerállapot", () => pm.response.to.be.siker); pm.test ("a név helyes", () => pm.expect (pm.response.json (). name) .to.equal ("Transformers")); pm.test ("az id hozzárendelve", () => pm.expect (pm.response.json (). id) .to.be.not.null);

Ahogy látjuk, ezek a tesztek használják a globális délután a Postman által biztosított modul. Különösen a tesztek használnak pm.test (), pm.expect (), és pm.válasz.

A pm.test () function elfogad egy címkét és egy érvényesítési függvényt, mint például várható (). Használjuk pm.expect () feltételeket állítani a válasz tartalmára JSON.

A pm.válasz Az objektum hozzáférést biztosít a kiszolgálótól visszaküldött válasz különféle tulajdonságaihoz és műveleteihez. Az elérhető tulajdonságok többek között a válaszállapotot és a JSON-tartalmat tartalmazzák.

Mint mindig, ezzel is mentjük a változásainkat Ctrl-S vagy a Mentés gomb.

6.2. A tesztek lefuttatása

Most, hogy megvannak a tesztjeink, futtassuk újra a kérést. A Küld gomb megjeleníti az eredményeket a Vizsgálati eredmények a válasz panel lapja:

Hasonlóképpen, a kollekció futója most megjeleníti a teszt eredményeinket. Pontosabban, a bal felső sarokban található összefoglaló a frissítettet mutatja telt el és nem sikerült összesen. Az összefoglaló alatt található egy lista, amely az egyes teszteket az állapotával mutatja:

6.3. A Postás konzol megtekintése

A Postás konzol hasznos eszköz a szkriptek létrehozásához és hibakereséséhez. A konzolt a. Alatt találjuk Kilátás menü az elem nevével Mutasd a Postás konzolt. Indításakor a konzol új ablakban nyílik meg.

Amíg a konzol nyitva van, az összes HTTP kérést és választ rögzíti. Továbbá, ha a szkriptek használják console.log (), a Postás konzol megjeleníti ezeket az üzeneteket:

7. Kérések sorozatának létrehozása

Eddig egyetlen HTTP-kérelemre összpontosítottunk. Most nézzük meg, mit tehetünk több kéréssel. A kérések sorozatának összekapcsolásával szimulálhatjuk és tesztelhetjük az ügyfél-kiszolgáló munkafolyamatát.

Ebben a szakaszban alkalmazzuk a tanultakat a kérések sorozatának létrehozása érdekében. Pontosabban további három végrehajtási kérelmet adunk hozzá a már létrehozott POST-kérelem után. Ezek egy GET, egy DELETE és végül egy másik GET lesznek.

7.1. Válaszértékek rögzítése a változókban

Mielőtt létrehoznánk az új kéréseinket, módosítsuk a meglévő POST-kérelmünket. Mert nem tudjuk, hogy a szerver melyik azonosítót fogja kiosztani foo Például használhatunk egy változót a szerver által visszaadott azonosító rögzítésére.

Az azonosító rögzítéséhez még egy sort hozzáadunk a POST-kérelem tesztfájljának végéhez:

pm.variables.set ("id", pm.response.json (). id);

A pm.variables.set () függvény értéket vesz fel és ideiglenes változóhoz rendel. Ebben az esetben létrehozunk egy id változó az objektumunk id értékének tárolásához. A beállítás után később elérhetjük ezt a változót.

7.2. GET-kérelem hozzáadása

Az előző szakaszok technikáinak felhasználásával adjunk hozzá egy GET kérést a POST kérés után.

Ezzel a GET kéréssel ugyanezt visszakeresjük foo a POST-kérelem által létrehozott példány. Nevezzük el ezt a GET kérést:szerezz foo-t“.

A GET kérés URL-je:

// localhost: 8082 / spring-boot-rest / auth / foos / {{id}}

Ebben az URL-ben a id változó, amelyet korábban a POST kérés során állítottunk be. Így a GET kérésnek ugyanazt a példányt kell beolvasnia, amelyet a POST hozott létre.

Ha a változók szkripteken kívül jelennek meg, a kettős zárójeles szintaxissal hivatkozunk {{id}}.

Mivel nincs törzs a GET kérésre, folytassuk közvetlenül a Tesztek fülre. Mivel a tesztek hasonlóak, átmásolhatjuk a teszteket a POST kérésből, majd néhány módosítást elvégezhetünk.

Először, nem kell beállítanunk a id ismét változó, ezért ne másoljuk ezt a sort.

Másodszor, tudjuk, melyik azonosítóra számíthatunk ezúttal, ezért ellenőrizzük ezt az azonosítót. Használhatjuk a id változó ehhez:

pm.test ("sikerállapot", () => pm.response.to.be.siker); pm.test ("a név helyes", () => pm.expect (pm.response.json (). name) .to.equal ("Transformers")); pm.test ("az id helyes", () => pm.expect (pm.response.json (). id) .to.equal (pm.változók.get ("id")));

Mivel a kettős zárójeles szintaxis nem érvényes JavaScript, ezért a pm.variables.get () funkció eléréséhez id változó.

Végül mentse el a módosításokat, ahogyan korábban tettük.

7.3. DELETE kérés hozzáadása

Ezután hozzáadunk egy DELETE kérést, amely eltávolítja a foo objektumot a szerverről.

Folytatjuk egy új kérés hozzáadásával a GET után, és a módszerét DELETE-re állítva. Nevezhetjük ezt a kérésttörölj egy foo-t“.

A törlés URL-je megegyezik a GET URL-lel:

// localhost: 8082 / spring-boot-rest / auth / foos / {{id}}

A válasznak nem lesz teste, amelyet tesztelhet, de tesztelhetjük a válaszkódot. Ezért a DELETE kérelemnek csak egy tesztje lesz:

pm.test ("sikerállapot", () => pm.response.to.be.success);

7.4. A DELETE ellenőrzése

Végül adjunk hozzá egy újabb példányt a GET kérésből, hogy ellenőrizzük, hogy a DELETE valóban működött-e. Ezúttal másoljuk le az első GET-kérelmünket ahelyett, hogy nulláról készítenénk egy kérést.

A kérelem másolatához kattintson a jobb gombbal a kérelemre a legördülő menü megjelenítéséhez. Ezután kiválasztjuk Másolat.

Az ismétlődő kérelemben szerepel a szó Másolat a nevéhez fűzve. Nevezzük át a következőre:a törlés ellenőrzése”A félreértések elkerülése érdekében. A Átnevezés opció a jobb egérgombbal kattintva érhető el.

Alapértelmezés szerint a duplikált kérelem azonnal megjelenik az eredeti kérés után. Ennek eredményeként a TÖRLÉS kérelem alá kell húznunk.

Az utolsó lépés a tesztek módosítása. Mielőtt azonban ezt megtennénk, használjuk ki az alkalmat, hogy lássuk a sikertelen tesztet.

Másoltuk a GET kérést és áthelyeztük a DELETE után, de a teszteket még nem frissítettük. Mivel a DELETE kérelemnek törölnie kellett volna az objektumot, a teszteknek sikertelennek kell lenniük.

Ügyeljünk arra, hogy mentse az összes kérésünket, majd nyomja meg a gombot Próbálja újra a gyűjtőfutóban. A várakozásoknak megfelelően tesztjeink kudarcot vallottak:

Most, hogy rövid kitérőnk elkészült, javítsuk ki a teszteket.

A sikertelen tesztek áttekintésével láthatjuk, hogy a szerver 500-as állapotban válaszol. Ezért tesztünk során megváltoztatjuk az állapotot.

Továbbá a sikertelen válasz megtekintésével a Postás konzol, megtudjuk, hogy a válasz magában foglalja a ok ingatlan. Sőt, a ok a tulajdonság tartalmazza a „Nincs érték“. Ezt is tesztelhetjük:

pm.test ("állapot 500", () => pm.response.to.have.status (500)); pm.test ("nincs érték jelen", () => pm.expect (pm.response.json (). oka) .to.equal ("Nincs érték jelen"));

7.5. A teljes gyűjtemény futtatása

Most, hogy az összes kérést hozzáadtuk, futtassuk a teljes gyűjteményt a gyűjtemény futójában:

Ha minden a tervek szerint alakult, akkor kilenc sikeres tesztet kell elvégeznünk.

8. A gyűjtemény exportálása és importálása

Míg a Postás magán, helyi helyen tárolja a gyűjteményeinket, érdemes lehet megosztanunk a gyűjteményt. Ehhez a gyűjteményt JSON fájlba exportáljuk.

A Export parancs a gyűjtemény ellipszis menüjében érhető el. Amikor a rendszer kéri a JSON fájlverziót, válassza ki a legújabb ajánlott verziót.

Miután kiválasztottuk a fájl verzióját, a Postman fájlnevet és helyet kér az exportált gyűjteményhez. Választhatunk egy mappát például a GitHub projektünkön belül.

Korábban exportált gyűjtemény importálásához a Importálás gomb. Megtalálhatjuk a Postás főablakának eszköztárán. Amikor a Postás fájl helyét kéri, navigálhatunk az importálni kívánt JSON fájlra.

Érdemes megjegyezni, hogy a Postman nem követi az exportált fájlokat. Ennek eredményeként a Postman mindaddig nem mutat külső változásokat, amíg újra nem importáljuk a gyűjteményt.

9. Következtetés

Ebben a cikkben a Postman segítségével félautomata teszteket készítettünk egy REST API-hoz. Noha ez a cikk bevezetésül szolgál a Postman alapvető szolgáltatásaihoz, alig kaparintjuk meg a képességeinek felületét. A Postman online dokumentáció értékes forrás a mélyebb feltáráshoz.

Az oktatóanyagban létrehozott gyűjtemény elérhető a GitHubon.


$config[zx-auto] not found$config[zx-overlay] not found