advanced scripting complex testing workflows postman
Saznajte više o Naprednom skriptiranju poštara za složene tijekove tijekova rada:
U ovom uputstvu vidjet ćemo neke osnovne primjere korištenja naprednog skriptiranja s poštarom koji bi nam omogućili pokretanje složenih tijekova rada.
Razgovarat ćemo o primjerima kao što su prosljeđivanje podataka iz jednog zahtjeva u drugi, lanci zahtjeva, tj. Kontrola redoslijeda izvršavanja zahtjeva unutar zbirke poštara itd.
pitanja i odgovori na ispitivanju izvedbe
=> Pročitajte seriju Easy Training Postman.
Što ćete naučiti:
- Prosljeđivanje podataka između zahtjeva u poštaru
- Zahtjev za lančenje poštara
- Napredno povezivanje tijeka posla s poštarom
- Važni savjeti
- Zaključak
- Preporučena literatura
Prosljeđivanje podataka između zahtjeva u poštaru
Prosljeđivanje podataka između zahtjeva proširenje je korištenja različitih vrsta Postman varijabli. Nije rijetkost kada zahtjev za API ovisi o podacima iz odgovora na prethodni zahtjev.
Da bismo izgradili takvu vrstu mogućnosti koristeći Postman, možemo jednostavno koristiti Postman varijable za postavljanje vrijednosti, ovisno o odgovoru koji je primljen iz prethodnih ili prethodnih zahtjeva.
Evo video vodiča:
Pogledajmo primjer da to ilustriramo.
Koristit ćemo isti API https://reqres.in sa svoje 2 krajnje točke, tj. registrirati korisnika i dobiti korisničke podatke.
Upotrijebit ćemo vrijednost korisničkog ID-a vraćenu iz registrirane krajnje točke i upotrijebit ćemo je za dobivanje metode korisničkih podataka. To će se postići pohranjivanjem vrijednosti userId u varijablu okruženja i korištenjem te varijable okoline u posljedičnom zahtjevu.
Napominjemo da će sve takve skripte biti dio kartice 'Testovi' na konzoli Graditelja zahtjeva za poštare.
Pogledajmo kako će scenarij izgledati:
# 1) Za krajnju točku Registriraj korisnika, odgovor ovog API-ja izgledat će kako je prikazano u nastavku.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Sada, da bismo izvršili GET zahtjev koristeći korisnički ID iz odgovora, moramo dobiti vrijednost id iz gornjeg odgovora. Upotrijebit ćemo donju skriptu za pohranu vrijednosti id iz ovog JSON-a u imenovanu varijablu okruženja userId.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
S gornjom skriptom, vrijednost ID-a sada će biti pohranjena u varijablu okruženja userId i ista se može koristiti tijekom izvršavanja krajnje točke GET korisničkog zahtjeva.
#dva) Stoga će zahtjev korisnika GET izgledati kako je prikazano u nastavku.
https://reqres.in/api/users/{(userId}}
Jednom kada se izvrši prvi zahtjev, iz odgovora će dohvatiti vrijednost UserID-a i ažurirati vrijednost varijable okoline, tako da se može koristiti u ostalim zahtjevima.
Zahtjev za lančenje poštara
Pokušajmo prvo razumjeti osnovni slučaj upotrebe lanca zahtjeva, a zatim ćemo se dodatno pozabaviti načinima na koje možemo postići lančenje zahtjeva pomoću poštara.
Razmotrite scenarij tijeka prijave web mjesta e-trgovine i provjerite valjanost prijavljenog korisnika. Sada da bi se korisnik mogao prijaviti, mora se prvo registrirati na web mjestu, a tek tada će se moći prijaviti. To je redoslijed kojim stvarna web lokacija mobilne aplikacije izvršava API pozive.
Pogledajte to iz perspektive integracijskog testa. Za API test prvo moramo:
- Pozovite registracijsku krajnju točku API-ja da bi se korisnik uspješno registrirao.
- Zatim nazovite krajnju točku za prijavu i provjerite detalje prijavljenog korisnika.
S Poštarom, upravljanje redoslijedom izvršenja zahtjeva nije jednostavno. Zadani nalog za izvršenje je od vrha do dna, tj. Redoslijed kojim se zahtjevi deklariraju ili kreiraju u zbirci Poštara.
Lanac zahtjeva ili redoslijed izvršenja zahtjeva mijenja se pomoću sljedeće skripte:
postman.setNextRequest({{RequestName}});
Ovdje je važno napomenuti da ovu skriptu lanca zahtjeva treba dodati u skriptu predbilježbe ili skriptu nakon zahtjeva (ili karticu testova u alatu za izradu zahtjeva poštara) koja pokreće tijek rada nakon dovršenja zahtjeva u izvršenju.
Ovdje je {{RequestName}} stvarno ime zahtjeva koje je konfigurirano ili postavljeno u zbirci Poštara.
Konfigurirajmo poštarsku kolekciju s 4 različita zahtjeva da ilustriraju koncept lanca zahtjeva. Stvorite novu kolekciju s 4 zahtjeva (koristit ćemo isti API https://reqres.in da to ilustriram).
4 zahtjeva u zbirci bit će kao u nastavku:
# 1) OBJAVI zahtjev za registraciju korisnika ( https://reqres.in/api/register ) s uzorkom JSON tijela s poljima koja sadrže e-poštu i lozinku kao u nastavku.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#dva) POST zahtjev s krajnjom točkom za prijavu ( https://reqres.in/api/login ) s istim tijelom zahtjeva kao gore.
# 3) GET zahtjev s userID 4.
Tok rada koji ćemo pokušati postići je:
Registracija (POST) -> Podaci o korisniku (GET) -> Prijava (POST)
Bez obzira na to kako su ti zahtjevi konfigurirani, stvorit ćemo tijek rada kako bi se izvršavali ovim redoslijedom.
Imajte na umu da su zahtjevi navedeni kao Registriraj korisnika, Dobij korisnika i Korisnik za prijavu. Važno je da ta imena zahtjeva budu točno i točno navedena u skripti, inače će tijek posla zapeti.
php pitanje i odgovor za intervju
Pogledajmo kako sada izgledaju skripte.
# 1) POST zahtjev za registraciju.
postman.setNextRequest('Login User');
#dva) POST zahtjev za prijavu.
postman.setNextRequest('Get User');
# 3) GET zahtjev za dobivanje korisničkih podataka. Ovdje je važno da ne želimo da se nešto dogodi nakon ovog zahtjeva. Ako ovdje ne dodamo nijednu skriptu toka posla, zbirka Poštara osmišljena je za nastavak sljedećeg zahtjeva logičnim ili zadanim redoslijedom.
Dakle, pretpostavimo da je izvorni redoslijed zahtjeva u zbirci Registrirajte se, dođite do korisnika i Prijaviti se i naš je tijek rada na Nabavite korisnika budući da kontrola ne zna koji će zahtjev ići sljedeći, ići će na sljedeći logički zahtjev koji je Prijaviti se i na kraju će rezultirati beskonačnom petljom.
Da biste spriječili takvu situaciju, korisno je prekinuti tijek rada pomoću,
postman.setNextRequest(null)
Kad god se tijekom izvršavanja kolekcije naiđe na gornju skriptu, izvršenje tijeka rada će se zaustaviti i pokretač kolekcije će se završiti.
U slučajevima kada postoje kružne reference sljedećeg zahtjeva, pokretač kolekcije zaglavit će se u beskonačnoj petlji, što će uzrokovati curenje memorije prije ili kasnije.
Imajte na umu da ćete za izvršenje tijeka rada trebati izvršiti prvi ili početni zahtjev ručno, objaviti to, slijedit će tijek rada kako je definirano u skriptama nakon zahtjeva.
Drugim riječima, prvi zahtjev koji se treba pokrenuti kao dio tijeka rada trebao bi biti i prvi zahtjev u zbirci ili mapi zbirke, tako da izvršenje tijeka rada započinje s prvim zahtjevom koji je ujedno i prvi zahtjev tijeka rada .
Napredno povezivanje tijeka posla s poštarom
Gornji primjer o kojem smo razgovarali, više je linearni tijek rada gdje smo upravo konfigurirali tijek rada između skupa zahtjeva u istoj zbirci. Ista se tehnika također može koristiti za ponavljanje zahtjeva više puta na temelju nekih vrijednosti odgovora ili varijabli okruženja.
Razmotrite integracijski test za aplikaciju košarice za kupovinu, gdje trebate testirati scenarij u kojem korisnik traži proizvod i dodaje ga u košaricu te mora izvršiti istu operaciju 5 puta, tj. Dok u košarici nema ukupno 5 predmeta, a zatim napokon naplata.
Dakle, ako biste za ovu vrstu testa napisali linearni tok, ponovili biste pojedinačne zahtjeve u zbirci i u osnovi bi zbirka imala 5 zahtjeva za pretraživanje predmeta i 5 zahtjeva za dodavanje proizvoda u košaricu i 1 zahtjev za naplatom.
Ovom funkcionalnošću tijeka rada možemo izbjeći ponavljanje istih zahtjeva u zbirci i koristiti se tijekovima rada za petlju između zahtjeva.
Pogledajmo slijed toka za takav scenarij (tada se to može koristiti / stvoriti pomoću Postmanova tijeka rada zajedno s kombinacijom varijabli okruženja).
Tu je i zanimljiv primjer korištenja Postmanova tijeka rada za stvaranje popisa za reprodukciju Spotify. Uputiti ovdje za više informacija.
Važni savjeti
Slijedi nekoliko važnih savjeta koje trebate upamtiti tijekom rada na izgradnji radnih tokova.
- Tijekom izvođenja zbirke ako za nekoliko zahtjeva nije postavljen postment.setNextRequest, izvršenje se nastavlja prema zadanom redoslijedu prikupljanja. Stoga se općenito preporučuje da Postman.setNextRequest bude u svim zahtjevima ili ni u jednom.
- Kada se izvode zbirke, ako se u zbirci nalaze mape, tada se Postman.setNextRequest može koristiti samo za zahtjeve koji pripadaju istoj mapi, tj. Odabir zahtjeva ne može ići dalje od trenutne mape.
- Postman.setNextRequest posljednja je izjava koja se izvršava u skripti nakon zahtjeva ili predbilježbe, bez obzira gdje se i kojim redoslijedom spominje.
U slučaju pronalaska više vrijednosti za setNextRequest, ona koja je spomenuta u posljednjoj je učinkovita.
Zaključak
U ovom smo uputstvu obradili nekoliko naprednih tema skriptiranja, poput kombiniranja okruženja i lokalnih varijabli za prosljeđivanje podataka između različitih zahtjeva u Poštaru i kako možemo kontrolirati redoslijed izvršavanja zahtjeva pomoću Postman Request lanca koji omogućuje napredne mogućnosti poput petlje i grananja.
Sjajna je značajka oponašati ponašanje aplikacije na način na koji bi komunicirala s različitim API-ima, a korisno je pisati tijekove rada od kraja do kraja pomoću integracijskih testova s krajnjim točkama API-ja.
=> Ovdje pogledajte Vodič za usavršavanje savršenih poštara.
Preporučena literatura
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Preuzimanje e-knjige za testiranje primera
- Vodič za POSTMAN: API ispitivanje pomoću POSTMAN-a
- Testiranje izvedbe web usluga pomoću LoadRunner VuGen skriptiranja
- Kako koristiti poštara za testiranje različitih formata API-ja?
- Ispitivanje opterećenja pomoću HP LoadRunner vodiča
- Razlika između testiranja radne površine, klijentskog poslužitelja i web testiranja
- Jeste li novi ili napredni ispitivač? Pronađi iz ove igre karata