Ga naar inhoud

Headless uitvoering en continue integratie

Een scenario dat u in de interface hebt gebouwd, draait zonder venster vanaf de opdrachtregel. Dat is de weg die uw API-tests in een pipelinestap verandert.

Het scenario “Find pets by status” in de editor: een Input/Param-actie met de naam status, het verzoek “Finds Pets by status” en een Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumentRol
--open <chemin>, -oHet project dat wordt geopend. Verplicht met --run
--run <cible>Het scenario dat wordt uitgevoerd. De aanwezigheid ervan zet de opdrachtregelmodus aan
--by <name|id>Hoe --run het scenario aanwijst: op naam (standaard) of op identificator
--headlessGeen venster. Zonder deze optie verschijnt het venster terwijl het logboek over de console loopt
--param nom=valeurEen waarde voor een invoerparameter van het scenario (een Input / Param-vakje). Herhaalbaar
--all-logsNeemt ook de items van de engine op; standaard worden alleen die van de actie Log uitgestuurd
--out <fichier>Schrijft het logboek ook naar een bestand, doorlopend
--clear-settings, -clsZet de voorkeuren terug voordat de applicatie start

Een --param die niet goed is opgebouwd (zonder =) wordt op de foutuitvoer gemeld en overgeslagen. nom= (een lege waarde) wordt geaccepteerd.

De waarden worden omgezet volgens het gedeclareerde type van de parameter — zie Variabelen en gegevens.

CodeBetekenis
0Het scenario is correct afgerond
1Mislukking, afbreking, of een fout van de engine
2Doel niet gevonden, --out-bestand niet toegankelijk, of --run zonder --open
3Recht geweigerd: RESTORM_TOKEN ontbreekt, is ongeldig of ingetrokken, plan ontoereikend, of het controlepunt is onbereikbaar

Het is deze conventie die het resultaat direct bruikbaar maakt voor een CI-runner.

Het logboek wordt naar de standaarduitvoer geschreven, één item per keer, zodra het is geproduceerd, in de vorm van een YAML-reeks:

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

De niveaus krijgen een stip vooraan: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. De regels worden nooit afgebroken — de uitvoer blijft grep-baar. De fouten gaan naar de standaardfoutuitvoer.

Dit is precies de tekst die de knop “logboek kopiëren” in de interface oplevert: aan beide kanten hetzelfde formaat.

Gebruik de geheimenbron omgevingsvariabele: het geheim wordt geïnjecteerd door de kluis van uw CI, Restorm leest het alleen, en er wordt niets in het project geschreven. Zie Geheimen.

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' # de versie die u wilt vastzetten
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' # de versie die u wilt vastzetten
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]
  • De acties Toast doen niets; de uitvoering gaat normaal verder.
  • Parameters kunnen niet interactief worden gevraagd: geef ze allemaal mee met --param, of laat ze hun standaardwaarde aannemen.
  • De MCP-server start nooit op een machine zonder beeldscherm, wat de instelling ook is.

Het token RESTORM_TOKEN (met voorvoegsel rstk_) genereert u vanuit het dashboard van uw account. Het hangt aan de organisatie, niet aan een persoon: dat is het token dat u in de kluis van de CI zet. Zie Accounts en aanmelden.