Aller au contenu

Headless izvršavanje i kontinuirana integracija

Scenario izgrađen u interfejsu izvršava se bez prozora iz komandne linije. To je put koji vaše API testove pretvara u korak pipeline-a.

Scenario „Find pets by status” u uređivaču: akcija Input/Param pod nazivom status, zahtev „Finds Pets by status” i Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumentUloga
--open <putanja>, -oProjekat koji treba otvoriti. Obavezno uz --run
--run <cilj>Scenario koji treba izvršiti. Njegovo prisustvo uključuje režim komandne linije
--by <name|id>Kako --run označava scenario: po nazivu (podrazumevano) ili po identifikatoru
--headlessBez prozora. Bez njega se prozor prikazuje dok zapis teče u konzoli
--param ime=vrednostVrednost za ulazni parametar scenarija (kutija Input / Param). Može se ponavljati
--all-logsUključuje stavke mehanizma; podrazumevano se emituju samo one iz akcije Log
--out <datoteka>Zapis se usput upisuje i u datoteku
--clear-settings, -clsResetuje podešavanja pre pokretanja

Loše oblikovan --param (bez =) prijavljuje se na izlaz greške i preskače se. ime= (prazna vrednost) se prihvata.

Vrednosti se konvertuju prema deklarisanom tipu parametra — vidite Promenljive i podaci.

KodZnačenje
0Scenario se ispravno završio
1Neuspeh, otkazivanje ili greška mehanizma
2Cilj nije pronađen, --out datoteka nije dostupna ili --run bez --open
3Odbijeno pravo: RESTORM_TOKEN nedostaje, nevažeći je ili je opozvan, plan nije dovoljan, ili tačka provere nije dostupna

Ta konvencija čini rezultat direktno upotrebljivim za CI runner.

Zapis se ispisuje na standardni izlaz, po jedna stavka odjednom, čim se proizvede, u obliku YAML sekvence:

- message: "🔵 [2026-07-29 10:30:00.123] Commande créée"
data: { id: 4271 }

Nivoi imaju prefiks u vidu pastile: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Redovi se nikada ne prelamaju — izlaz ostaje pogodan za grep. Greške odlaze na standardni izlaz grešaka.

To je tačno onaj tekst koji proizvodi dugme „kopiraj zapis” u interfejsu: isti format sa obe strane.

Koristite izvor tajni promenljiva okruženja: tajnu ubacuje trezor vašeg CI-ja, Restorm je samo čita i ništa se ne upisuje u projekat. Vidite Tajne.

name: Tests d'API
on: [push]
jobs:
api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Installer Restorm
env:
RESTORM_VERSION: '1.4.2' # verzija koju želite da zakačite
run: |
curl -sSL -o restorm.deb \
"https://dl.restorm.app/restorm_${RESTORM_VERSION}_amd64.deb"
sudo apt-get install -y ./restorm.deb
- name: Exécuter les tests de fumée
env:
RESTORM_TOKEN: ${{ secrets.RESTORM_TOKEN }}
API_TOKEN: ${{ secrets.API_TOKEN }}
run: |
xvfb-run -a restorm \
--open ./api.restorm \
--run "Find pets by status" \
--headless \
--all-logs \
--out run.log \
--param status=available
- name: Publier le journal
if: always()
uses: actions/upload-artifact@v4
with:
name: journal-restorm
path: run.log
tests-api:
image: ubuntu:24.04
variables:
RESTORM_TOKEN: $RESTORM_TOKEN
RESTORM_VERSION: '1.4.2' # verzija koju želite da zakačite
before_script:
- apt-get update && apt-get install -y curl xvfb
- curl -sSL -o restorm.deb "https://dl.restorm.app/restorm_${RESTORM_VERSION}_amd64.deb"
- apt-get install -y ./restorm.deb
script:
- >
xvfb-run -a restorm
--open ./api.restorm
--run "Find pets by status"
--headless --all-logs --out run.log
--param status=$PET_STATUS
artifacts:
when: always
paths: [run.log]
  • Akcije Toast ne rade ništa; izvršavanje se normalno nastavlja.
  • Parametri se ne mogu tražiti interaktivno: dostavite ih sve preko --param, ili ih pustite da uzmu svoju podrazumevanu vrednost.
  • MCP server nikada se ne pokreće na mašini bez ekrana, bez obzira na podešavanje.

Token RESTORM_TOKEN (sa prefiksom rstk_) generiše se sa kontrolne table vašeg naloga. Vezan je za organizaciju, a ne za osobu: to je token koji se stavlja u trezor CI-ja. Vidite Nalozi i prijavljivanje.