Zum Inhalt springen

Headless-Ausführung und Continuous Integration

Ein in der Oberfläche erstelltes Szenario lässt sich ohne Fenster über die Kommandozeile ausführen. Das ist der Weg, der aus Ihren API-Tests einen Pipeline-Schritt macht.

Das Szenario „Find pets by status“ im Editor: eine Input/Param-Aktion namens status, die Anfrage „Finds Pets by status“ und ein Log

Terminal-Fenster
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumentRolle
--open <path>, -oDas zu öffnende Projekt. Bei --run erforderlich
--run <target>Das auszuführende Szenario. Sein Vorhandensein aktiviert den Kommandozeilenmodus
--by <name|id>Wie --run das Szenario bezeichnet: nach Name (Standard) oder nach ID
--headlessKein Fenster. Ohne diese Option wird das Fenster angezeigt, während das Protokoll auf der Konsole mitläuft
--param name=valueEin Wert für einen Eingabeparameter des Szenarios (einen Input/Param-Baustein). Wiederholbar
--all-logsBezieht auch die Einträge der Engine mit ein; standardmäßig werden nur die der Aktion Log ausgegeben
--out <file>Schreibt das Protokoll zusätzlich laufend in eine Datei
--clear-settings, -clsSetzt die Einstellungen vor dem Start zurück

Ein fehlerhaft geformtes --param (ohne =) wird auf der Fehlerausgabe gemeldet und ignoriert. name= (leerer Wert) wird akzeptiert.

Die Werte werden gemäß dem deklarierten Typ des Parameters umgewandelt – siehe Variablen und Daten.

CodeBedeutung
0Das Szenario wurde erfolgreich beendet
1Fehlschlag, Abbruch oder Engine-Fehler
2Ziel nicht gefunden, Datei --out nicht erreichbar, oder --run ohne --open
3Zugriff verweigert: RESTORM_TOKEN fehlt, ungültig oder widerrufen, unzureichender Plan, oder Prüfpunkt nicht erreichbar

Diese Konvention macht das Ergebnis direkt für einen CI-Runner nutzbar.

Das Protokoll wird auf der Standardausgabe geschrieben, jeweils ein Eintrag, sobald er erzeugt wird, als YAML-Sequenz:

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

Die Stufen sind durch ein Symbol gekennzeichnet: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Zeilen werden nie umgebrochen – die Ausgabe bleibt grep-fähig. Fehler werden auf der Standard-Fehlerausgabe ausgegeben.

Das ist exakt der Text, den die Schaltfläche „Protokoll kopieren“ der Oberfläche erzeugt: auf beiden Seiten dasselbe Format.

Verwenden Sie die Secret-Quelle Umgebungsvariable: Das Secret wird vom Tresor Ihrer CI eingespeist, Restorm liest es nur, und nichts wird in das Projekt geschrieben. Siehe Secrets.

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' # die Version, die Sie fixieren möchten
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' # die Version, die Sie fixieren möchten
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]
  • Toast-Aktionen bewirken nichts; die Ausführung läuft normal weiter.
  • Parameter können nicht interaktiv abgefragt werden: Stellen Sie sie alle über --param bereit, oder lassen Sie sie ihren Standardwert annehmen.
  • Der MCP-Server startet auf einer Maschine ohne Bildschirm niemals, unabhängig von der Einstellung.

Das Token RESTORM_TOKEN (mit dem Präfix rstk_) wird über das Dashboard Ihres Kontos erzeugt. Es ist an die Organisation gebunden, nicht an eine Person: Es ist das Token, das man in den Tresor der CI legt. Siehe Konten und Anmeldung.