Aller au contenu

Automatizacija API testova u kontinuiranoj integraciji

Scenarij izgrađen u sučelju radi takav kakav jest i u vašem cjevovodu. Ovaj vodič pokriva prelazak na širu upotrebu.

  • Plan Pro ili Enterprise.
  • Token organizacije (rstk_…) koji treba smjestiti u trezor tajni vašeg CI-ja. (Samostalna izrada tog tokena s nadzorne ploče stiže uskoro.)
Terminal window
RESTORM_TOKEN=$RESTORM_TOKEN restorm \
--open ./api.restorm \
--run "Tests de fumée" \
--headless \
--all-logs \
--out run.log \
--param baseUrl=$BASE_URL

Izlazni kod 0 = uspjeh, 1 = neuspjeh scenarija, 2 = pogreška poziva, 3 = odbijeno pravo.

Restorm je stolna aplikacija: čak i bez prozora treba mu poslužitelj zaslona. Na Linux runneru dodajte prefiks xvfb-run -a.

Terminal window
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headless

Nikada nemojte tajnu zapisati u projekt. Osjetljive varijable deklarirajte izvorom tajne varijabla okruženja; trezor vašeg CI-ja ih ubacuje, a Restorm ih čita. Pogledajte Tajne.

env:
API_TOKEN: ${{ secrets.API_TOKEN }}

Dva komplementarna pristupa:

  1. Parametar scenarija tipa environment: --param Env=staging. Isti scenarij radi prema bilo kojem odredištu.
  2. Jednostavni parametri: --param baseUrl=…, --param tenant=….

Pretvorba slijedi deklarirani tip parametra, a neizvediva pretvorba odmah prekida pokretanje umjesto da se izvođenje nastavi s pogrešnom vrijednošću. Pogledajte Varijable i podatke.

--out run.log zapisuje zapisnik u stvarnom vremenu. Objavite ga kao artefakt, uključujući kada posao zakaže — upravo tada i služi.

- uses: actions/upload-artifact@v4
if: always()
with:
name: journal-restorm
path: run.log

Nekoliko navika koje mijenjaju sve kada se u 3 ujutro pojavi crveni posao:

  • Izričite poruke tvrdnji. Polje message akcije Tvrdnja ono je što će se pojaviti u zapisniku: napišite u njega što se očekivalo.
  • Zapisnik na ključnim koracima. Bez --all-logs emitiraju se samo stavke akcije Log: to je vaša nit pripovijedanja.
  • Validacija sheme umjesto tvrdnje polje po polje. Priključite izlaz errors akcije Validiraj shemu na Log: dobivate točan popis povreda.
  • Throw na ključnim izlazima else, kako bi izlazni kod odražavao neuspjeh.
  • Retry oko nestabilnih mrežnih poziva, umjesto prihvaćanja povremeno padajućih testova. Pogledajte Upravljanje.

Čišćenje ulančajte na port done glavnog scenarija: done čeka da završi cijelo podstablo. Pogledajte Portove i veze.

ZamkaRješenje
Posao čeka unosNavedite sve parametre pomoću --param; u headless načinu ništa se ne može tražiti
Akcija Toast se ne prikazujeTo je uredu: u headless načinu nema učinka. Upotrijebite Log
MCP poslužitelj se ne pojavljujeTako je zamišljeno: bez stvarnog zaslona nikada se ne pokreće
Izlaz 3Token ili plan — poruka precizira koji je od četiri slučaja
Datoteka projekta se pomaknula--open prihvaća putanju relativnu prema repozitoriju: držite je relativnom

GitHub Actions i GitLab CI cjevovodi nalaze se u članku Headless izvođenje i CI.