Když testujete API přes Postman, na těchto pěti věcech to stojí

Z Mazovia


Sprint plánujte podle kapacity, ne podle přán

U číselných vstupů se vyplatí ověřit, že jde skutečně o číslo, a teprve potom ho vložit do dotazu. U textových vstupů nastavte maximální délku a povolené znaky podle toho, co má pole skutečně obsahovat. Nikdy nepoužívejte vstup od uživatele k výběru názvu tabulky nebo sloupce. Pokud to nutně potřebujete, použijte pevný seznam povolených hodnot a z něj vybírejte, nikdy ne skládáním řetězce.

Nakonec počítejte s tím, že jeden dotaz není izolovaná věc. Projděte všechny cesty, kde se pracuje s databází, včetně méně používaných administračních funkcí a staršího kódu. If you liked this article and you also would like to collect more info with regards to úPrava interiéru nicely visit our site. Zaveďte pravidelnou kontrolu a testy, které zkusí do vstupů poslat neobvyklé znaky. Prevence SQL injection není jednorázový úkol, Jak zaříDit malou kuchyni ale návyk: parametrizovat, ověřovat a omezovat práva při každé změně aplikace.

Největší slabina technických implementací je chybějící práce s prázdnými a chybovými stavy. Načítání, prázdný seznam, selhaný požadavek, neplatný vstup – to nejsou okrajové případy, to je běžný provoz. Pokud tyto stavy řešíte až na konci, výsledek působí nedokončeně. U prázdného stavu vždy napište, co se stalo a co má uživatel udělat dál. U chyby nabídněte konkrétní krok k nápravě, ne jen obecné „něco se pokazilo". U načítání používejte skeleton tam, kde znáte strukturu obsahu, a spinner jen tam, kde nevíte, co přijde.

SQL injection vzniká ve chvíli, kdy aplikace vloží vstup od uživatele přímo do databázového dotazu. Útočník pak místo očekávané hodnoty pošle fragment SQL, který změní význam celého příkazu. Nejde o teoretickou hrozbu: stačí jedno neošetřené pole ve formuláři a lze číst cizí záznamy, měnit je nebo je smazat. Obrana není složitá, ale musí být důsledná na všech místech, kde se data zvenčí dostávají do dotazu.

Při práci s daty, která se mají ukládat, neposílejte stále stejný požadavek dokola. Vytvoření záznamu s pevným identifikátorem podruhé selže, což je správně, ale vypadá to jako chyba API. Používejte dynamická data z generátoru, který je součástí Postmanu, nebo si hodnotu vygenerujte v předpožadovaném skriptu. Stejně tak nezapomeňte, že po sobě máte uklidit – smazat vytvořený záznam, pokud to API umožňuje. Jinak vám testovací data zůstanou v databázi a při dalším běhu způsobí konflikty.

Proměnné místo ručního přepisování Adresa serveru, klíč API a identifikátory se nemají psát ručně do každého požadavku. V Postmanu k tomu slouží proměnné na úrovni prostředí (environment) nebo kolekce. Do URL pak píšete jen base_url/users/user_id. Když přepnete prostředí z vývojového na testovací, změní se adresa i klíč na jednom místě. Typická chyba je, že lidé mají proměnnou definovanou, ale zapomenou ji aktivovat – požadavek pak odejde s prázdnou hodnotou a server vrátí 404 nebo 401, i když je vše napsané správně.

Základem je parametrizace dotazů. Místo skládání řetězců použijte připravené příkazy s placeholdery a hodnoty předejte zvlášť. V praxi to znamená, že dotaz vypadá například jako SELECT * FROM users WHERE email = ? a databázový ovladač sám zajistí, že vstup zůstane pouhou hodnotou, ne spustitelným kódem. Toto pravidlo platí pro všechny jazyky i frameworky, včetně těch, které nabízejí pohodlnější zápis. Pokud někde řetězíte SQL ručně, je to rizikové místo.

Praktický postup: než commit vytvoříš, přečti si vlastní diff a napiš, co se změnilo očima někoho, kdo kód nezná. Pokud se ti do prvního řádku nevejde shrnutí, rozděl práci na více commitů. Každý commit ať řeší jednu věc a jde samostatně vrátit. U složitějších změn přidej do těla i to, co jsi netestoval nebo co zůstává otevřené — budoucí čtenář tak pozná hranice změny.
U autentizace se nevyplácí spoléhat na to, že si token zkopírujete ručně. V záložce Authorization nastavte typ podle toho, co API vyžaduje, a token vložte jako proměnnou. Pokud token vyprší, dostanete 401 a budete ho muset obnovit. Některá API vracejí token v odpovědi na přihlášení; pak stačí v testovacím skriptu odpovědi nastavit pm.environment.set("token", pm.response.json().token) a další požadavky už ho použijí samy.

Postman se používá hlavně proto, že umožňuje sestavit HTTP požadavek, odeslat ho a okamžitě vidět, co server vrátil. Než začnete cokoli testovat, vytvořte si kolekci. Do ní budete ukládat jednotlivé požadavky podle logických celků – například uživatelé, objednávky, platby. Kolekce se dají sdílet, exportovat a spouštět hromadně, takže se vyplatí pojmenovávat požadavky konzistentně. Vyhněte se názvům jako „test1" nebo „oprava"; za týden nebudete vědět, co který požadavek dělá.