Když potřebuješ otestovat API, Postman zvládne víc než jen odeslat požadavek

Z Mazovia


Nepodceňujte lidi. DevOps neznamená, že vývojář bude ve dvě ráno řešit server. Znamená to, že provoz je součástí návrhu a vývoj rozumí dopadům svých rozhodnutí. Domluvte se na společných pravidlech a střídejte se v podpoře. Pokud se změní jen nástroje a odpovědnost zůstane rozdělená, vrátíte se k původnímu stavu. Začněte malým týmem, jedním procesem a ochotou měřit osvětlení v obývákuýsledek.

Základem je kolekce. Nevkládej každý požadavek do globální historie, ale vytvoř kolekci pojmenovanou podle testovaného rozhraní. Do ní přidej požadavky rozdělené do složek podle logických celků – například uživatelé, objednávky, platby. U každého požadavku nastav metodu, URL a hlavičky. Pro autentizaci použij proměnnou prostředí, ne ručně vkládaný token. Když se token změní, upravíš ho na jednom místě a všechny požadavky v kolekci ho použijí.

Základ je funkce, jejíž jméno začíná na test_. Uvnitř použijete běžný assert. pytest si při neúspěchu sám rozparsuje výraz a ukáže konkrétní hodnoty, takže nemusíte psát vlastní chybové zprávy. Soubor pojmenujte test_*.py, jinak ho sběrač testů ignoruje. Spuštění je pak jen pytest v kořeni projektu. První past: testy, které něco vypisují na obrazovku, vypadají jako úspěch i při selhání – výstup se totiž nezobrazí, dokud test nespadne.

Skripty, které odhalí víc než ruční kontrola Záložka Tests je místo, kde se z požadavku stává test. Nepiš jen pm.response.to.have.status(200). Ověř i tělo odpovědi: zkontroluj, že pole id je číslo, že email obsahuje zavináč, že seznam položek není prázdný. Pro složitější struktury použij pm.expect(pm.response.json()).to.have.property('data'). U chybových stavů testuj konkrétní kód a text zprávy, ne jen to, že požadavek selhal. Pokud API vrací chybu při neplatném vstupu, musí to být 400 nebo 422, ne 500.

Moduly nahrazují dřívější globální proměnné a vzory s okamžitě volanými funkcemi. Exportovat lze pojmenovaně i jako výchozí hodnotu, ale kombinace obou přístupů v jednom souboru mate. Držte se jednoho stylu. Dále mějte na paměti, že importy jsou statické a musí být na začátku souboru; dynamické načítání řeší až funkce import(). Asynchronní funkce s async a await zjednodušují práci s promisemi, ale nezapomeňte na try/catch. Neodchycená chyba v asynchronní funkci jinak skončí jako neobsloužené odmítnutí promise.

Většina začátečníků udělá stejnou chybu: otevře žebříček popularity jazyků, podívá se na prvních pět míst a vybere ten, o kterém nejvíc slyšela. Za měsíc zjistí, že se učí syntaxi, ale nedokáže nic postavit, protože jazyk nesedí na to, co skutečně chce dělat. Výběr prvního jazyka není o tom, který je „nejlepší", ale který ti nejdřív umožní dokončit vlastní projekt.

Když vybíráš podle nabídky práce, přijdeš o motivaci Častá past: člověk si vybere jazyk podle toho, co vidí v inzerátech, a po dvou týdnech narazí na první vážný problém. Nemá k němu vztah, takže nemá důvod ho řešit. Motivace zůstane jen tam, kde tě projekt táhne dopředu sám. Zkus si vybrat jazyk, na kterém jde postavit maličkost do jednoho večera: počítadlo, převodník jednotek, čtečku textu. Když tutoriál zvládneš do večera a výsledek funguje, jazyk je pravděpodobně dobrá volba. Když tě prostředí odradí dřív než první řádek kódu, hledej dál — není to tvoje chyba.

Praktický postup: vyber dva kandidáty, ne pět. U každého stráv dva večery. První večer nainstaluj prostředí a spusť „ahoj světe". Druhý večer napiš malý program, který něco dělá s tvými daty. Potom se rozhodni podle toho, u kterého jsi měl menší tření a větší chuť pokračovat. Ne podle toho, kolik hvězdiček má repozitář.

Nejčastější chyba je testování pouze šťastné cesty. Odešleš platná data, dostaneš 200 a tím to skončí. Jenže API se láme na okrajích: chybějící povinné pole, příliš dlouhý řetězec, neplatný formát data, duplicitní záznam. Pro každý endpoint připrav alespoň jeden negativní scénář. Další častá chyba je závislost na datech z předchozích běhů. Test, který projde jen když předtím existoval konkrétní uživatel, není test, ale náhoda. Vytvářej si data v rámci testu a po sobě je uklízej.

Když máš kolekci hotovou, spusť ji přes Collection Runner. Zjistíš, které požadavky na sobě závisí a které selhávají při opakovaném spuštění. Průběžně sleduj konzoli, kde se zobrazují chyby ze skriptů. A hlavně: výsledky testů nejsou potvrzení, že API funguje. Jsou to jen ověření, že v daném okamžiku vrátilo to, co jsi čekal. Skutečná hodnota Postmana je v tom, že tyto kontroly zopakuješ po každé změně kódu během několika sekund.

If you have any issues pertaining to exactly where and how to use ndz.zp.ua, you can speak to us at our web-site.