API testy

Jak testovat transakční e-maily: spouštěč, obsah, odkazy a duplicity

Potvrzení objednávky, odkaz pro obnovu hesla nebo upozornění na změnu účtu vzniká mimo obrazovku, na které uživatel provedl akci. Úspěšná hláška ve webu proto ještě nedokazuje, že systém vytvořil správnou zprávu, poslal ji správnému příjemci a při opakování nevygeneroval kopie. Spolehlivý test sleduje celý tok od obchodní události až po kontrolovanou testovací schránku.

Proč úspěch na obrazovce nestačí

Aplikace může správně uložit objednávku, ale selhat při vytvoření události, zpracování fronty nebo předání zprávy poskytovateli. Může nastat i opačný problém: opakovaný pokus odešle stejnou zprávu vícekrát nebo šablona použije údaje nesprávného uživatele. Bez oddělených kontrol tým vidí jen to, že e-mail nepřišel, ale nevidí, kde tok selhal.

Pro každý typ zprávy proto určete událost, která jej spouští, příjemce, šablonu, jazyk a data vložená do obsahu. Stejně důležitá jsou negativní pravidla: při neúspěšné platbě nesmí odejít potvrzení zaplacené objednávky a změna cizího účtu nesmí vyvolat zprávu pro přihlášeného testera.

Taková smlouva rozlišuje tři výsledky:

  1. obchodní operace se dokončila,
  2. aplikace vytvořila požadavek na odeslání,
  3. e-mailová služba zprávu přijala a testovací schránka ji zpřístupnila.

Pokud test pozoruje jen poslední bod, příčina chyby se hledá obtížně. Na API vrstvě se proto hodí stejné principy jako při testování REST API: jednoznačné vstupy, kontrola odpovědi a ověřitelný stav po operaci.

Co má automatizovaný scénář ověřit

Spouštěč a příjemce

Test vytvoří jedinečnou objednávku nebo účet, provede právě jednu akci a uloží korelační údaj, například číslo objednávky. Potom ověří očekávaný typ zprávy a správnou adresu příjemce. Samostatný negativní scénář potvrdí, že při zamítnuté nebo nedokončené operaci e-mail nevznikl.

U platebních procesů nestačí čekat na výsledek po kliknutí na tlačítko ve webu. Potvrzení může spustit až serverová notifikace poskytovatele, a proto je třeba respektovat hranice popsané u testování platební brány.

Obsah a lokalizace

Kontrolujte předmět, důležitá fakta a povinné části, ne celý HTML dokument znak po znaku. Objednávkový e-mail má obsahovat správné položky, částku, měnu a identifikátor; zpráva o účtu zase data správného uživatele. Test má zachytit také nenahrazené značky šablony, prázdné hodnoty, chybný jazyk a nebezpečně vložený uživatelský text.

Obsahovou kontrolu lze doplnit několika cílenými ověřeními HTML a textové alternativy. Úplné obrazové porovnání ve všech poštovních klientech bývá křehké a patří do samostatné matice kompatibility.

Odkazy, tokeny a přílohy

Z odkazu načtěte cílovou doménu, cestu a token. V testovacím prostředí nesmí mířit do produkce. Pokud produkt slibuje jednorázový nebo časově omezený token, ověřte úspěšné první použití i odmítnutí po opakování či po uplynutí dohodnuté platnosti. Nejde o obecné pravidlo e-mailu, ale o konkrétní požadavek produktu.

U přílohy kontrolujte název, typ a klíčový obsah, nikoli pouze její existenci. Citlivé údaje nahraďte syntetickými. Zásady bezpečného výběru rozebírá téma testovací data a GDPR.

Duplicity a opakování

Fronta, poskytovatel i volající služba mohou požadavek zopakovat po překročení časového limitu. Test proto vyvolá stejnou obchodní událost nebo simulovaný opakovaný pokus podle architektury a ověří dohodnutý výsledek: obvykle jednu uživatelskou zprávu, případně jasně definovanou následnou notifikaci. Hlavička Message-ID identifikuje zprávu, sama však nenahrazuje obchodní klíč idempotence, například identifikátor události.

Bezpečná testovací schránka bez náhodných shod

Použijte schránku nebo záchytnou službu určenou pouze pro testování. Každý běh dostane jedinečnou adresu nebo identifikátor v předmětu. Místo pevného čekání test schránku opakovaně kontroluje do rozumného limitu a hledá podle příjemce, typu a korelačního údaje. Starší zprávy před scénářem smažte nebo je spolehlivě odfiltrujte.

Schránka nesmí přeposílat zprávy skutečným zákazníkům a její přístupové údaje chraňte jako ostatní testovací tajemství. Uchovejte dostatek diagnostiky pro rozlišení stavů „požadavek nevznikl“, „poskytovatel jej odmítl“ a „zpráva dorazila pozdě“, ale zbytečně nelogujte resetovací tokeny ani osobní údaje.

Tento postup ověřuje funkční tok. Neříká však, zda e-mail skončí ve spamu u skutečných poskytovatelů ani zda má odesílací doména dobrou reputaci. Doručitelnost, DNS nastavení a reputace odesílatele jsou samostatná disciplína, která potřebuje jiné prostředí a měření.

Co tím tým získá

Výsledkem není jen informace, že „e-mail nepřišel“. Korelační údaje a oddělené kontrolní body ukážou, zda selhala obchodní událost, vytvoření úlohy, fronta nebo odesílací služba. Scénáře navíc opakovaně zachytí chybného příjemce, nesprávný obsah a duplicity bez použití skutečných zákaznických adres. Tým tak získá konkrétní důkaz pro opravu i následné regresní ověření.

Rozumný první krok

Vyberte jeden e-mail s vysokým dopadem a zapište jeho spouštěč, zakázané stavy, příjemce, povinná data a pravidla opakování. Začněte malou sadou scénářů od API po bezpečnou schránku tak, aby výsledek odlišil chybu aplikace, fronty a e-mailové služby.

Související témata

Mohlo by vás také zajímat

Chyby v obchodní logice odhalíte rychleji přímo přes API

Funkční, integrační a kontraktní testování REST, SOAP či GraphQL rozhraní s možností zapojení do CI/CD pipeline.