Automatizace testů API v průběžné integraci
Scénář postavený v rozhraní běží ve vaší pipeline přesně tak, jak je. Tento průvodce se věnuje přechodu do provozního měřítka.
Předpoklady
Section titled “Předpoklady”- Plán Pro nebo Enterprise.
- Token organizace (
rstk_…), který uložíte do trezoru tajemství své CI. (Samoobslužné vytvoření tohoto tokenu z nástěnky se chystá.)
Princip
Section titled “Princip”RESTORM_TOKEN=$RESTORM_TOKEN restorm \ --open ./api.restorm \ --run "Tests de fumée" \ --headless \ --all-logs \ --out run.log \ --param baseUrl=$BASE_URLNávratový kód 0 = úspěch, 1 = selhání scénáře, 2 = chyba vyvolání,
3 = odepřené právo.
Virtuální displej je nutný
Section titled “Virtuální displej je nutný”Restorm je desktopová aplikace: i bez okna potřebuje server displeje. Na runneru
s Linuxem přidejte předponu xvfb-run -a.
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headlessTajemství
Section titled “Tajemství”Nikdy nezapisujte tajemství do projektu. Své citlivé proměnné deklarujte se zdrojem tajemství proměnná prostředí; trezor vaší CI je vloží a Restorm je přečte. Viz Tajemství.
env: API_TOKEN: ${{ secrets.API_TOKEN }}Parametrizace podle prostředí
Section titled “Parametrizace podle prostředí”Dva doplňující se přístupy:
- Parametr scénáře typu
environment:--param Env=staging. Tentýž scénář pak běží proti libovolnému cíli. - Jednoduché parametry:
--param baseUrl=…,--param tenant=….
Převod se řídí deklarovaným typem parametru a nemožný převod nechá spuštění selhat okamžitě, místo aby běželo se špatnou hodnotou. Viz Proměnné a data.
Publikování záznamu
Section titled “Publikování záznamu”--out run.log zapisuje záznam průběžně. Publikujte ho jako artefakt, a to
i tehdy, když úloha selže — právě tehdy je totiž k něčemu.
- uses: actions/upload-artifact@v4 if: always() with: name: journal-restorm path: run.logJak psát scénáře čitelné v CI
Section titled “Jak psát scénáře čitelné v CI”Pár návyků, které všechno změní, jakmile se ve tři ráno objeví červená úloha:
- Výslovné zprávy u assercí. Pole
messageakce Assert je to, co se objeví v záznamu: napište do něj, co se očekávalo. - Záznam v klíčových krocích. Bez
--all-logsse vysílají jen položky akce Log: to je vaše vypravěčská linka. - Validace schématu místo assercí po jednotlivých polích. Zapojte výstup
errorsbloku Validace schématu na Log: dostanete přesný seznam porušení. - Throw na kritických výstupech
else, aby návratový kód selhání odrážel. - Retry okolo nestabilních síťových volání, místo abyste se smířili s občasně padajícími testy. Viz Řízení.
Úklid zřetězte na port done hlavního scénáře: done čeká, až skončí celý
podgraf. Viz
Porty a propojení.
Pasti, o kterých je dobré vědět
Section titled “Pasti, o kterých je dobré vědět”| Past | Řešení |
|---|---|
| Úloha čeká na zadání | Předejte všechny parametry pomocí --param; v režimu headless si nelze o nic říct |
| Akce Toast se nezobrazí | To je normální: v režimu headless nemá žádný účinek. Použijte Log |
| Server MCP se neobjeví | To je záměr: bez skutečného displeje se nikdy nespustí |
Návratový kód 3 | Token nebo plán — zpráva upřesní, který ze čtyř případů nastal |
| Soubor projektu se přesunul | --open přijímá cestu relativní k repozitáři: nechte ji relativní |
Kompletní příklady
Section titled “Kompletní příklady”Pipeline pro GitHub Actions a GitLab CI najdete v kapitole Běh v režimu headless a CI.