Připravte verzované vzorové události bez produkčních dat, automaticky ověřujte schéma a podpis, testujte duplicitu, souběh, změnu pořadí, timeout a chybu závislosti, zkontrolujte výsledný obchodní stav a před nasazením do produkce ověřte retry, karanténu, monitoring i bezpečné přehrání události.
Testování webhooků musí ověřit víc než úspěšné doručení ukázkového JSON. Událost může přijít opakovaně, mimo pořadí, s neplatným podpisem, po dlouhém zpoždění nebo v nové verzi. Příjemce může zprávu potvrdit a selhat až při zpracování. Bez chybových scénářů vznikne z jednoho zeleného testu falešný pocit spolehlivosti.
Dobrá testovací strategie odděluje ověření kontraktu, bezpečnosti, přijetí a obchodního účinku. Používá bezpečná syntetická data, reprodukovatelné události a izolované integrace. Produkční test pak ověřuje pouze to, co nelze spolehlivě simulovat, a má přesně určený způsob úklidu vytvořeného stavu.
Vytvořte katalog událostí a očekávaných účinků
Pro každý typ uveďte spouštěč, verzi, povinná pole, identitu objektu a očekávaný výsledek. Rozlište úplný objekt od oznámení, po kterém se data načtou přes API. Katalog zahrnuje i událost zrušení, opravy a stav, který integrace ignoruje. Bez toho test pokrývá jen nejviditelnější příklad.
Ke každé události vytvořte bezpečný fixture s typickou, minimální a hraniční hodnotou. Zachovejte realistické formáty, diakritiku a délky, ale nepoužívejte skutečné osobní údaje ani tajemství. Fixtures verzujte společně s kontraktem a označte, který výsledek má vzniknout v databázi, frontě a navazujícím systému.
Ověřte podpis, čas a ochranu proti přehrání
Testujte platný podpis vytvořený přesně ze surového těla podle dokumentace poskytovatele. Poté změňte jeden znak, použijte nesprávný tajný klíč, starou časovou značku a chybějící hlavičku. Příjemce má neplatnou zprávu odmítnout před obchodním zpracováním a bez prozrazení detailů ověření.
Ověřte tolerované časové okno a evidenci identity události. Stejná zachycená platná zpráva nesmí po opětovném přehrání provést druhou operaci. Rotaci podpisového tajemství testujte se souběžným přechodem, pokud jej poskytovatel umožňuje. Tajemství pro test musí být oddělené od produkce a nesmí skončit ve fixture.
- platný a poškozený podpis
- zastaralé nebo chybějící časové údaje
- opakované ID stejné události
- přechod mezi starým a novým tajemstvím
Simulujte duplicitu, pořadí a souběh
Odešlete stejnou událost vícekrát sekvenčně i souběžně a ověřte jediný obchodní účinek. Následně změňte pořadí stavů, například doručte finální stav před průběžným. Příjemce má použít verzi, čas nebo pravidla přechodů tak, aby starší událost nevrátila objekt zpět.
Testujte události různých objektů současně i více událostí jednoho objektu. Zámek na celou integraci může zbytečně snížit propustnost, slabá koordinace zase narušit pořadí. Při konfliktu má vzniknout viditelný stav, nikoli náhodný výsledek podle rychlosti workeru. Test opakujte, aby odhalil časově citlivé chyby.
Otestujte odpověď, retry a selhání závislosti
Přijímací endpoint má událost rychle ověřit a bezpečně uložit. Simulujte pomalou databázi, nedostupnou frontu, plné úložiště a pád po uložení. Potvrzení před trvalým uložením může vést ke ztrátě události, odpověď po příliš dlouhém zpracování vyvolá opakování. Očekávání stanovte podle kontraktu poskytovatele.
Ověřte rostoucí odstup, maximální stáří a počet pokusů odesílatele nebo vlastního testovacího dvojníka. Trvalá chyba schématu nemá donekonečna zaplňovat frontu. Po dosažení limitu se událost přesune do karantény s alarmem a uvedením důvodu. Bezpečné přehrání po opravě musí zachovat původní identitu i audit.
Použijte kontraktové testy a kontrolované produkční ověření
Automatický test validuje fixtures proti schématu a spouští příjemce při každé změně. Pokud poskytovatel zveřejňuje sandbox nebo nástroj pro opakování, zahrňte jej do integračního testu. Spotřebitelský kontrakt zachytí pole a chování, na nichž skutečně závisíte, ale nesmí blokovat kompatibilní nepovinná rozšíření.
Před ostrým nasazením ověřte URL, certifikát, firewall, tajemství, monitoring a možnost rychle pozastavit příjem. Produkční test použije kontrolovanou událost podle pravidel služby a prověří konečný stav i úklid. Sledujte první reálné události, rozdíly sesouhlaste přes API a testovací sadu rozšiřte po každém incidentu.
- schéma a význam každého podporovaného typu události
- kompatibilita staré a nové verze payloadu
- pozorovatelný výsledek v cílovém obchodním procesu
- bezpečné přehrání po odstranění příčiny chyby
- monitoring karantény a stáří nezpracovaných událostí
- úklid kontrolovaných záznamů po produkčním testu
Časté dotazy
Stačí webhook otestovat přes ruční HTTP klient?
Je užitečný pro první diagnostiku, ale nepokrývá podpis, retry, souběh, pořadí a celý obchodní účinek. Potřebujete automatické fixtures, integrační scénáře a kontrolu výsledku.
Mohou testy používat produkční webhooková data?
Ne bez důvodu a ochranných opatření. Vytvořte syntetické fixtures se správnou strukturou. Pokud incident vyžaduje reprodukci, údaje minimalizujte, anonymizujte a zpřístupněte jen oprávněným osobám.
Jak bezpečně zopakovat chybnou událost?
Po odstranění příčiny ji přehrajte přes určený nástroj s původní identitou a auditem. Před spuštěním ověřte aktuální stav objektu, aby stará událost nepřepsala novější změnu.