advanced scripting complex testing workflows postman
Dozviete sa viac o pokročilých skriptoch Postman pre zložité pracovné postupy testovania:
V tomto tutoriále uvidíme niekoľko základných príkladov použitia rozšíreného skriptovania s programom Postman, ktoré by nám umožnilo spustiť zložité pracovné postupy testovania.
Budeme diskutovať o príkladoch, ako je prenos údajov z jednej požiadavky na druhú, reťazenie požiadaviek, t. J. Kontrola vykonávacieho poradia požiadaviek v zbierke Poštár atď.
jar súbory potrebné pre selenium webdriver
=> Prečítajte si sériu školení Easy Postman.
Čo sa dozviete:
- Odovzdávanie údajov medzi požiadavkami poštárovi
- Požiadajte o reťazenie v službe Poštár
- Advanced Workflow Chaining With Postman
- Dôležité tipy
- Záver
- Odporúčané čítanie
Odovzdávanie údajov medzi požiadavkami poštárovi
Predávanie údajov medzi požiadavkami je rozšírením používania rôznych typov Postmanových premenných. Nie je neobvyklé, že požiadavka na API závisí od údajov z odpovede predchádzajúcej žiadosti.
Na vybudovanie takéhoto druhu schopností pomocou Postmana môžeme jednoducho použiť Postmanove premenné na nastavenie hodnoty v závislosti od odpovede, ktorá bola prijatá z predchádzajúcich alebo predchádzajúcich požiadaviek.
Tu je videonávod:
Pozrime sa na príklad, ktorý to ilustruje.
Budeme používať rovnaké API https://reqres.in s jeho 2 koncovými bodmi, tj. Registrovať používateľa a Získať podrobnosti o užívateľovi.
Použijeme hodnotu ID užívateľa vrátenú z registračného koncového bodu a použijeme ju na získanie metódy podrobností používateľa. To sa dosiahne uložením hodnoty userId do premennej prostredia a použitím tejto premennej prostredia v následnej žiadosti.
Upozorňujeme, že všetky tieto skripty budú súčasťou karty „Testy“ konzoly na vytváranie požiadaviek Postmana.
Pozrime sa, ako bude vyzerať skript:
# 1) V prípade registrácie koncového bodu používateľa bude odpoveď tohto rozhrania API vyzerať tak, ako je uvedené nižšie.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Teraz, aby sme vykonali požiadavku GET pomocou ID používateľa z odpovede, musíme získať hodnotu id z vyššie uvedenej odpovede. Nasledujúci skript použijeme na uloženie hodnoty id z tohto JSON do premennej prostredia s názvom ID používateľa.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
V prípade vyššie uvedeného skriptu sa hodnota ID teraz uloží do premennej prostredia userId a to isté sa dá použiť pri vykonávaní koncového bodu žiadosti používateľa GET.
#dva) Požiadavka používateľa GET bude teda vyzerať, ako je uvedené nižšie.
https://reqres.in/api/users/{(userId}}
Akonáhle je vykonaná prvá požiadavka, načíta hodnotu UserID z odpovede a aktualizuje hodnotu premennej prostredia, aby ju bolo možné použiť v ostatných požiadavkách.
Požiadajte o reťazenie v službe Poštár
Najprv sa pokúsime porozumieť základnému prípadu použitia reťazenia požiadaviek a potom sa budeme ďalej venovať tomu, ako môžeme dosiahnuť reťazenie požiadaviek pomocou aplikácie Postman.
Zvážte scenár toku prihlásenia na webe elektronického obchodu a overte prihláseného používateľa. Teraz, aby sa používateľ mohol prihlásiť, musí byť najskôr zaregistrovaný na webe a až potom sa bude môcť prihlásiť. Toto je poradie, v akom aktuálna stránka mobilnej aplikácie vykonáva hovory API.
Pozerajte sa na to z pohľadu testu integrácie. Pri teste API musíme najskôr:
- Zavolajte registračný koncový bod API, aby sa používateľ úspešne zaregistroval.
- Potom zavolajte koncový bod prihlásenia a potvrďte podrobnosti prihláseného používateľa.
V prípade spoločnosti Postman nie je kontrola poradia vykonávania žiadosti jednoduchá. Predvolené poradie vykonania je zhora nadol, t. J. Poradie, v ktorom sú požiadavky deklarované alebo vytvárané v zbierke Poštár.
Reťazenie požiadaviek alebo poradie vykonávania požiadaviek sa mení pomocou nasledujúceho skriptu:
postman.setNextRequest({{RequestName}});
Je dôležité si uvedomiť, že tento skript na reťazenie požiadaviek je potrebné pridať do skriptu pred požiadavkou alebo skriptu po žiadosti (alebo na kartu testov v nástroji na tvorbu požiadaviek Postmana), ktorý spustí pracovný tok po dokončení žiadosti v priebehu vykonávania.
Tu je {{RequestName}} skutočný názov požiadavky, ktorý je nakonfigurovaný alebo nastavený v zbierke Poštár.
Poďme nakonfigurovať zbierku Postman so 4 rôznymi požiadavkami, aby sme ilustrovali koncept reťazenia požiadaviek. Vytvorte novú kolekciu so 4 požiadavkami (použijeme rovnaké API https://reqres.in na ilustráciu).
4 žiadosti v zbierke budú uvedené nižšie:
# 1) POST žiadosť o registráciu používateľa ( https://reqres.in/api/register ) so vzorom tela JSON s poľami, ktoré majú e-mail a heslo, ako je uvedené nižšie.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#dva) POST požiadavka s koncovým bodom prihlásenia ( https://reqres.in/api/login ) s rovnakým orgánom žiadosti ako vyššie.
# 3) ZÍSKAJTE žiadosť s ID užívateľa 4.
Pracovný postup, ktorý sa pokúsime dosiahnuť, je:
Registrovať sa (POST) -> Podrobnosti o používateľovi (GET) -> Prihlásiť sa (POST)
Bez ohľadu na to, ako sú tieto požiadavky nakonfigurované, vytvoríme pracovný tok, ktorý ich nechá vykonať v tomto poradí.
Upozorňujeme, že žiadosti sú pomenované ako Registrovať používateľa, Získať používateľa a Prihlásiť sa. Je dôležité, aby ste tieto názvy žiadostí mali v skripte presne a správne špecifikované, inak sa pracovný tok zasekne.
Pozrime sa, ako teraz vyzerajú skripty.
# 1) POST žiadosť o registráciu.
postman.setNextRequest('Login User');
#dva) POST požiadavka na prihlásenie.
postman.setNextRequest('Get User');
Príkaz ls v unixe s príkladmi
# 3) ZÍSKAJTE požiadavku na získanie podrobností používateľa. Je tu dôležité, aby sme nechceli, aby sa po tejto žiadosti niečo stalo. Ak sem nepridáme žiadny skript pracovného toku, kolekcia Postman je navrhnutá tak, aby pokračovala v ďalšej požiadavke v logickom alebo predvolenom poradí.
Predpokladajme teda, že pôvodné poradie požiadaviek v zbierke je Zaregistrujte sa, získajte používateľa a Prihlásiť sa a náš pracovný tok je na Získajte používateľa pretože ovládací prvok nevie, ktorá požiadavka má ísť ďalej, prejde na ďalšiu logickú požiadavku, ktorá je Prihlásiť sa a nakoniec vyústi do nekonečnej slučky.
Aby sa zabránilo takejto situácii, je užitočné ukončiť pracovný tok pomocou,
postman.setNextRequest(null)
Kedykoľvek sa počas vykonávania kolekcie vyskytne vyššie uvedený skript, vykonávanie pracovného toku sa zastaví a bežec kolekcie sa ukončí.
V prípadoch, keď existujú kruhové odkazy na ďalšiu požiadavku, sa zberač zasekne v nekonečnej slučke, čo skôr či neskôr spôsobí únik pamäte.
Upozorňujeme, že na vykonanie pracovného toku budete musieť vykonať prvú alebo počiatočnú požiadavku manuálne, zverejniť ho, bude nasledovať pracovný tok, ako je definované v skriptoch po žiadosti.
Inými slovami, prvá požiadavka, ktorá sa má spustiť ako súčasť pracovného toku, by mala byť tiež prvou požiadavkou v kolekcii alebo priečinku kolekcie, takže vykonávanie pracovného toku začína prvou požiadavkou, ktorá je zároveň prvou požiadavkou pracovného toku. .
Advanced Workflow Chaining With Postman
Vyššie uvedený príklad, ktorý sme diskutovali, je skôr lineárnym pracovným tokom, kde sme práve nakonfigurovali pracovný tok medzi množinou požiadaviek v tej istej kolekcii. Rovnaká technika sa môže použiť aj na opakovanie viackrát nad požiadavkou na základe niektorých hodnôt odozvy alebo premenných prostredia.
Zvážte test integrácie pre aplikáciu nákupného košíka, kde musíte otestovať scenár, keď používateľ vyhľadá produkt, pridá ho do košíka a musí vykonať rovnakú operáciu päťkrát, tj. Kým košík nebude obsahovať celkom 5 položiek a potom konečne pokladňa.
Ak by ste teda mali pre tento druh testu napísať lineárny tok, v zbierke by ste opakovali jednotlivé požiadavky a v podstate by kolekcia mala 5 žiadostí o vyhľadanie položky a 5 žiadostí o pridanie produktov do košíka a 1 žiadosť o platbu.
Vďaka tejto funkcii pracovného toku sa môžeme vyhnúť opakovaniu rovnakých požiadaviek v kolekcii a pomocou pracovných tokov vytvoriť slučku medzi požiadavkami.
Pozrime sa na postupnosť postupu pre takýto scenár (potom ho možno použiť / vytvoriť pomocou pracovného toku Postman spolu s kombináciou premenných prostredia).
Existuje tiež zaujímavý príklad použitia pracovného postupu Postman na vytvorenie zoznamu skladieb Spotify. Refer tu Pre viac informácií.
Dôležité tipy
Ďalej uvádzame niekoľko dôležitých tipov, ktoré si treba pamätať pri práci na vytváraní pracovných postupov.
- Ak počas spúšťania kolekcie nie je nastavených niekoľko požiadaviek, postment.setNextRequest bude vykonávanie pokračovať v predvolenom poradí zhromažďovania. Všeobecne sa preto odporúča mať Postman.setNextRequest buď vo všetkých požiadavkách, alebo v žiadnej z nich.
- Ak pri spustení so zbierkami existujú priečinky v rámci zbierky, potom je možné použiť súbor Postman.setNextRequest iba pre požiadavky patriace do rovnakého priečinka, t. J. Výber žiadosti nemôže presahovať rámec aktuálneho priečinka.
- Postman.setNextRequest je posledný príkaz, ktorý sa vykoná v skripte po vyžiadaní alebo pred požiadaním bez ohľadu na to, kde a v akom poradí je uvedený.
V prípade viacerých hodnôt nájdených pre setNextRequest je účinná hodnota uvedená v poslednej.
Záver
V tomto tutoriáli sme sa venovali niekoľkým pokročilým skriptovacím témam, ako je kombinovanie prostredia a lokálnych premenných na prenos dát medzi rôznymi požiadavkami v Postmani a ako môžeme riadiť poradie vykonávania požiadaviek pomocou reťazenia Postman Request, ktoré umožňuje pokročilé funkcie ako opakovanie a vetvenie.
Je to skvelá funkcia, ktorá napodobňuje správanie aplikácie spôsobom, akým interaguje s rôznymi API, a je užitočné zapisovať medzi sebou pracovné postupy pomocou integračných testov s koncovými bodmi API.
=> Vyskúšajte tu príručku The Perfect Postman Training Guide.
Odporúčané čítanie
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Stiahnutie e-knihy Testing Primer
- Výukový program POSTMAN: Testovanie API pomocou programu POSTMAN
- Testovanie výkonu webových služieb pomocou skriptovania LoadRunner VuGen
- Ako používať Postman na testovanie rôznych formátov API?
- Testovanie záťaže s výukovými programami HP LoadRunner
- Rozdiel medzi počítačom, klientskym serverom a webom
- Ste nový alebo pokročilý tester? Nájdite z tejto hry kariet