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.
Preduvjeti
Section titled “Preduvjeti”- 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.)
Načelo
Section titled “Načelo”RESTORM_TOKEN=$RESTORM_TOKEN restorm \ --open ./api.restorm \ --run "Tests de fumée" \ --headless \ --all-logs \ --out run.log \ --param baseUrl=$BASE_URLIzlazni kod 0 = uspjeh, 1 = neuspjeh scenarija, 2 = pogreška poziva,
3 = odbijeno pravo.
Potreban je virtualni zaslon
Section titled “Potreban je virtualni zaslon”Restorm je stolna aplikacija: čak i bez prozora treba mu poslužitelj zaslona. Na
Linux runneru dodajte prefiks xvfb-run -a.
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headlessNikada 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 }}Parametriranje po okruženju
Section titled “Parametriranje po okruženju”Dva komplementarna pristupa:
- Parametar scenarija tipa
environment:--param Env=staging. Isti scenarij radi prema bilo kojem odredištu. - 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.
Objava zapisnika
Section titled “Objava zapisnika”--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.logPisanje scenarija čitljivih u CI-ju
Section titled “Pisanje scenarija čitljivih u CI-ju”Nekoliko navika koje mijenjaju sve kada se u 3 ujutro pojavi crveni posao:
- Izričite poruke tvrdnji. Polje
messageakcije Tvrdnja ono je što će se pojaviti u zapisniku: napišite u njega što se očekivalo. - Zapisnik na ključnim koracima. Bez
--all-logsemitiraju se samo stavke akcije Log: to je vaša nit pripovijedanja. - Validacija sheme umjesto tvrdnje polje po polje. Priključite izlaz
errorsakcije 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
Section titled “Čišćenje”Čišćenje ulančajte na port done glavnog scenarija: done čeka da završi
cijelo podstablo. Pogledajte
Portove i veze.
Zamke koje treba poznavati
Section titled “Zamke koje treba poznavati”| Zamka | Rješenje |
|---|---|
| Posao čeka unos | Navedite sve parametre pomoću --param; u headless načinu ništa se ne može tražiti |
| Akcija Toast se ne prikazuje | To je uredu: u headless načinu nema učinka. Upotrijebite Log |
| MCP poslužitelj se ne pojavljuje | Tako je zamišljeno: bez stvarnog zaslona nikada se ne pokreće |
Izlaz 3 | Token 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 |
Cjeloviti primjeri
Section titled “Cjeloviti primjeri”GitHub Actions i GitLab CI cjevovodi nalaze se u članku Headless izvođenje i CI.