Tovább a tartalomhoz

Headless futtatás és folyamatos integráció

A felületen felépített forgatókönyv a parancssorból ablak nélkül is lefuttatható. Ez az az út, amely az API-tesztekből pipeline-lépést csinál.

A „Find pets by status” forgatókönyv a szerkesztőben: egy status nevű Input/Param művelet, a „Finds Pets by status” kérés és egy Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumentumSzerep
--open <path>, -oA megnyitandó projekt. A --run mellett kötelező
--run <target>A futtatandó forgatókönyv. Puszta jelenléte bekapcsolja a parancssori módot
--by <name|id>Ahogyan a --run megjelöli a forgatókönyvet: név szerint (alapértelmezés) vagy azonosító szerint
--headlessSemmilyen ablak. Nélküle megjelenik az ablak, miközben a napló a konzolon fut
--param name=valueÉrték a forgatókönyv egyik bemeneti paraméteréhez (egy Input / Param blokkhoz). Többször megadható
--all-logsA motor bejegyzéseit is beleveszi; alapértelmezés szerint csak a Log művelet bejegyzései kerülnek ki
--out <file>A naplót menet közben egy fájlba is kiírja
--clear-settings, -clsIndítás előtt visszaállítja a beállításokat

A hibásan megadott --param (amelyben nincs =) a hibakimeneten jelzésre kerül, és figyelmen kívül marad. A name= (üres érték) elfogadott.

Az értékek a paraméter deklarált típusa szerint alakulnak át — lásd: Változók és adatok.

KódJelentés
0A forgatókönyv rendben lefutott
1Hiba, megszakítás vagy a motor hibája
2A cél nem található, a --out fájl nem érhető el, vagy --run szerepel --open nélkül
3Jogosultság elutasítva: a RESTORM_TOKEN hiányzik, érvénytelen vagy visszavont, az előfizetés nem elegendő, vagy az ellenőrzőpont nem érhető el

Ez a megállapodás teszi az eredményt közvetlenül feldolgozhatóvá egy CI-runner számára.

A napló a standard kimenetre kerül, bejegyzésenként, amint elkészül, YAML-szekvencia formájában:

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

A szinteket egy-egy jelölő előzi meg: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. A sorok soha nem törnek meg — a kimenet grep-elhető marad. A hibák a standard hibakimenetre mennek.

Pontosan ugyanez a szöveg, mint amit a felület „napló másolása” gombja előállít: mindkét oldalon ugyanaz a formátum.

A környezeti változó titokforrást érdemes használni: a titkot a CI széfje injektálja, a Restorm csak beolvassa, és semmi nem kerül a projektfájlba. Lásd: Titkok.

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' # a rögzítendő verzió
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' # a rögzítendő verzió
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]
  • A Toast műveletek nem tesznek semmit; a futtatás normálisan folytatódik.
  • A paramétereket nem lehet interaktívan bekérni: mindegyiket a --param argumentummal kell megadni, vagy hagyni, hogy az alapértelmezett értékükre álljanak.
  • Az MCP-kiszolgáló kijelző nélküli gépen soha nem indul el, a beállítástól függetlenül.

A RESTORM_TOKEN token (rstk_ előtaggal) a fiók irányítópultján generálható. A szervezethez van kötve, nem egy személyhez: ez az a token, amely a CI széfjébe kerül. Lásd: Fiókok és bejelentkezés.