advanced scripting complex testing workflows postman
Další informace o pokročilém skriptování Postman pro složité pracovní postupy testování:
V tomto tutoriálu uvidíme několik základních příkladů použití Advanced Scripting with Postman, které by nám umožnily spouštět složité pracovní postupy testování.
Budeme diskutovat o příkladech, jako je předávání dat z jednoho požadavku na druhý, řetězení požadavků, tj. Ovládání prováděcího pořadí požadavků uvnitř sbírky Postman atd.
existuje aplikace pro plánování příspěvků na instagramu
=> Přečtěte si tréninkovou sérii Easy Postman.
Co se naučíte:
- Předávání dat mezi požadavky v pošťáku
- Požádejte o řetězení v pošťáku
- Advanced Workflow Chaining With Postman
- Důležité tipy
- Závěr
- Doporučené čtení
Předávání dat mezi požadavky v pošťáku
Předávání dat mezi požadavky je rozšířením používání různých typů proměnných Postman. Není neobvyklé, že požadavek API závisí na datech z odpovědi předchozího požadavku.
K vytvoření takového druhu funkcí pomocí Postmana můžeme jednoduše použít Postman proměnné k nastavení hodnoty v závislosti na odpovědi, která byla přijata z předchozích nebo předchozích požadavků.
Zde je videonávod:
Pro ilustraci se podívejme na příklad.
Budeme používat stejné API https://reqres.in se svými 2 koncovými body, tj. Registrovat uživatele a Získat podrobnosti o uživateli.
Použijeme hodnotu ID uživatele vrácenou z registračního koncového bodu a použijeme ji k získání metody podrobností uživatele. Toho bude dosaženo uložením hodnoty userId do proměnné prostředí a použitím této proměnné prostředí v následném požadavku.
Pamatujte, že všechny takové skripty budou součástí karty „Testy“ konzoly pro vytváření požadavků na Postmana.
Podívejme se, jak bude skript vypadat:
# 1) V případě registrace koncového bodu uživatele bude odpověď tohoto rozhraní API vypadat, jak je znázorněno níže.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Nyní, abychom provedli požadavek GET pomocí ID uživatele z odpovědi, musíme získat hodnotu id z výše uvedené odpovědi. Níže uvedený skript použijeme k uložení hodnoty id z tohoto JSON do proměnné prostředí s názvem uživatelské ID.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
U výše uvedeného skriptu bude hodnota ID nyní uložena v proměnné prostředí userId a totéž lze použít při provádění koncového bodu požadavku GET uživatele.
#dva) Požadavek uživatele GET tedy bude vypadat níže.
https://reqres.in/api/users/{(userId}}
Jakmile je proveden první požadavek, načte hodnotu UserID z odpovědi a aktualizuje hodnotu proměnné prostředí, aby ji bylo možné použít v ostatních požadavcích.
Požádejte o řetězení v pošťáku
Nejprve se pokusíme porozumět základnímu případu použití řetězení požadavků a poté se ponoříme dále do toho, jak můžeme dosáhnout řetězení požadavků pomocí Postmana.
Zvažte scénář toku přihlašování webu elektronického obchodování a ověřte přihlášeného uživatele. Nyní, aby se uživatel mohl přihlásit, musí být nejprve zaregistrován na webu a teprve poté se bude moci přihlásit. To je pořadí, ve kterém skutečný web mobilní aplikace provádí volání API.
Podívejte se na to z pohledu testu integrace. U testu API musíme nejdříve:
- Voláním registračního koncového bodu rozhraní API se uživatel úspěšně zaregistruje.
- Poté zavolejte koncový bod přihlášení a ověřte podrobnosti přihlášeného uživatele.
U Postmana není řízení pořadí vyřizování požadavků přímé. Výchozí pořadí provádění je shora dolů, tj. Pořadí, ve kterém jsou požadavky deklarovány nebo vytvořeny v kolekci Postman.
Řetězení požadavků nebo pořadí provádění požadavků se mění pomocí následujícího skriptu:
postman.setNextRequest({{RequestName}});
Je důležité si zde uvědomit, že tento skript řetězení požadavku je třeba přidat do skriptu před požadavkem nebo skriptu po požadavku (nebo na kartu testů v nástroji pro tvorbu požadavků Postmana), který spustí pracovní tok, jakmile je požadavek ve zpracování dokončen.
Zde je {{RequestName}} skutečný název požadavku, který je nakonfigurován nebo nastaven v kolekci Postman.
Nakonfigurujme Postmanovu sbírku se 4 různými požadavky, abychom ilustrovali koncept řetězení požadavků. Vytvořte novou kolekci se 4 požadavky (použijeme stejné API https://reqres.in pro ilustraci).
4 žádosti ve sbírce budou následující:
# 1) POST žádost o registraci uživatele ( https://reqres.in/api/register ) se vzorovým tělem JSON s poli s e-mailem a heslem, jak je uvedeno níže.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#dva) POST požadavek s koncovým bodem přihlášení ( https://reqres.in/api/login ) se stejným tělem žádosti jako výše.
# 3) ZÍSKAT požadavek s ID uživatele 4.
Pracovní postup, kterého se pokusíme dosáhnout, je:
Registrace (POST) -> Uživatelské údaje (GET) -> Přihlášení (POST)
Bez ohledu na to, jak jsou tyto požadavky nakonfigurovány, vytvoříme pracovní postup, který je provede v tomto pořadí.
Upozorňujeme, že žádosti jsou pojmenovány jako Registrovat uživatele, Získat uživatele a Přihlašovací uživatel. Je důležité mít tyto názvy požadavků ve skriptu přesně a správně zadané, jinak se pracovní postup zasekne.
Podívejme se, jak teď skripty vypadají.
# 1) POST žádost o registraci.
postman.setNextRequest('Login User');
#dva) POST požadavek na přihlášení.
postman.setNextRequest('Get User');
# 3) ZÍSKEJTE požadavek na získání podrobností uživatele. Zde je důležité, že nechceme, aby se po této žádosti něco stalo. Pokud sem nepřidáme žádný skript pracovního postupu, kolekce Postman je navržena tak, aby pokračovala v dalším požadavku v jeho logickém nebo výchozím pořadí.
Předpokládejme tedy, že původní pořadí požadavků ve sbírce je Zaregistrujte se, získejte uživatele a Přihlásit se a náš pracovní tok je na Získejte uživatele protože ovládací prvek neví, který požadavek má jít dále, přejde na další logický požadavek, který je Přihlásit se a nakonec vyústí v nekonečnou smyčku.
Aby se takové situaci předešlo, je užitečné pracovní postup ukončit pomocí,
postman.setNextRequest(null)
Kdykoli během provádění kolekce dojde k výše uvedenému skriptu, spuštění pracovního postupu se zastaví a běh kolekce se ukončí.
jaký je nejlepší youtube na mp3
V případech, kdy existují kruhové odkazy na další požadavek, se běžec kolekce zasekne v nekonečné smyčce, což dříve nebo později způsobí únik paměti.
Vezměte prosím na vědomí, že k provedení pracovního postupu budete muset provést první nebo počáteční požadavek ručně, zveřejnit jej, bude následovat pracovní postup definovaný ve skriptech po žádosti.
Jinými slovy, první požadavek, který je třeba spustit jako součást pracovního postupu, by měl být také prvním požadavkem ve sbírce nebo složce kolekce, takže spuštění pracovního postupu začíná prvním požadavkem, který je také prvním požadavkem pracovního postupu .
Advanced Workflow Chaining With Postman
Výše uvedený příklad, který jsme diskutovali, je spíše lineární pracovní tok, kde jsme právě nakonfigurovali pracovní postup mezi sadou požadavků ve stejné kolekci. Stejná technika může být také použita pro opakování požadavku vícekrát na základě některých hodnot odezvy nebo proměnných prostředí.
Zvažte test integrace pro aplikaci nákupního košíku, kde musíte otestovat scénář, kdy uživatel hledá produkt a přidá jej do košíku a musí provést stejnou operaci 5krát, tj. Dokud nebude mít košík celkem 5 položek a poté konečně pokladna.
Pokud byste tedy pro tento druh testu napsali lineární tok, opakovali byste jednotlivé požadavky v kolekci a v zásadě by kolekce měla 5 požadavků na hledání položky a 5 požadavků na přidání produktů do košíku a 1 žádost o pokladnu.
S touto funkcí pracovního postupu se můžeme vyhnout opakování stejných požadavků v kolekci a použít pracovní postupy k smyčce mezi požadavky.
Podívejme se na sled toku pro takový scénář (ten pak lze použít / vytvořit pomocí pracovního toku Postmana spolu s kombinací proměnných prostředí).
Existuje také zajímavý příklad použití pracovního postupu Postman k vytvoření seznamu skladeb Spotify. Viz tady Pro více informací.
Důležité tipy
Níže uvádíme několik důležitých tipů, které si musíte pamatovat při práci na vytváření pracovních postupů.
- Při spuštění kolekce, pokud několik požadavků nemá nastavený postment.setNextRequest, provádění pokračuje ve výchozím pořadí kolekce. Proto se obecně doporučuje mít Postman.setNextRequest buď ve všech požadavcích, nebo v žádném z nich.
- Při spuštění s kolekcemi, pokud jsou v kolekci složky, lze Postman.setNextRequest použít pouze pro požadavky patřící do stejné složky, tj. Výběr požadavku nemůže přesahovat aktuální složku.
- Postman.setNextRequest je poslední příkaz, který se provede ve skriptu po požadavku nebo před požadavkem bez ohledu na to, kde a v jakém pořadí je uveden.
V případě více hodnot nalezených pro setNextRequest je účinná ta, která byla uvedena v poslední.
Závěr
V tomto tutoriálu jsme se zabývali několika pokročilými skriptovacími tématy, jako je kombinace prostředí a místních proměnných pro předávání dat mezi různými požadavky v Postmanu a jak můžeme řídit pořadí provádění požadavků pomocí řetězení Postman Request, které umožňuje pokročilé funkce, jako je opakování a větvení.
Je to skvělá funkce, která napodobuje chování aplikace způsobem, jakým by interagovala s různými API, a je užitečné psát pracovní postupy typu end-to-end pomocí integračních testů s koncovými body API.
=> Podívejte se na průvodce Perfect Postman Training Guide zde.
Doporučené čtení
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Testování stahování e-knih Primer
- Výukový program POSTMAN: Testování API pomocí POSTMANU
- Testování výkonu webových služeb pomocí skriptování LoadRunner VuGen
- Jak používat Postman pro testování různých formátů API?
- Testování zátěže s výukovými programy HP LoadRunner
- Rozdíl mezi stolním počítačem, klientským serverem a webovým testováním
- Jste nový nebo pokročilý tester? Najít z této hry karet