Gå til innholdet

Headless kjøring og kontinuerlig integrasjon

Et scenario du har bygget i grensesnittet, kjører uten vindu fra kommandolinjen. Det er veien som gjør API-testene dine om til et trinn i en pipeline.

Scenarioet «Find pets by status» i editoren: en Input/Param-handling som heter status, forespørselen «Finds Pets by status» og en Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumentRolle
--open <path>, -oProsjektet som skal åpnes. Påkrevd sammen med --run
--run <target>Scenarioet som skal kjøres. Er det til stede, slås kommandolinjemodus på
--by <name|id>Hvordan --run peker ut scenarioet: etter navn (standard) eller etter ID
--headlessIngen vindu. Uten dette vises vinduet mens loggen ruller på konsollet
--param name=valueEn verdi for en inndataparameter i scenarioet (en Input / Param-boks). Kan gjentas
--all-logsTar med motorens oppføringer også; som standard sendes bare de fra handlingen Log ut
--out <file>Skriver loggen til en fil i tillegg, fortløpende
--clear-settings, -clsNullstiller innstillingene før start

En --param med feil form (uten =) meldes på feilutgangen og ignoreres. name= (tom verdi) godtas.

Verdiene konverteres etter parameterens erklærte type — se Variabler og data.

KodeBetydning
0Scenarioet ble ferdig som det skulle
1Feil, avbrudd eller en feil i motoren
2Målet ble ikke funnet, --out-filen er utilgjengelig, eller --run uten --open
3Rettighet avslått: RESTORM_TOKEN mangler, er ugyldig eller trukket tilbake, planen er utilstrekkelig, eller verifiseringspunktet er utilgjengelig

Det er denne konvensjonen som gjør resultatet direkte brukbart for en CI-runner.

Loggen skrives til standard ut, én oppføring om gangen, så snart den er produsert, som en YAML-sekvens:

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

Nivåene har en farget kule foran: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Linjene brytes aldri — utdataene forblir grep-bare. Feilene går til standard feilutgang.

Det er nøyaktig den teksten som knappen «kopier loggen» i grensesnittet produserer: samme format på begge sider.

Bruk hemmelighetskilden miljøvariabel: hemmeligheten injiseres av hvelvet i CI, Restorm gjør ikke annet enn å lese den, og ingenting skrives til prosjektet. Se Hemmeligheter.

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' # versjonen du vil låse til
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' # versjonen du vil låse til
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-handlingene gjør ingenting; kjøringen fortsetter som normalt.
  • Parameterne kan ikke etterspørres interaktivt: oppgi dem alle med --param, eller la dem ta standardverdien sin.
  • MCP-serveren starter aldri på en maskin uten skjerm, uansett hvilken innstilling som er satt.

Tokenet RESTORM_TOKEN (med prefikset rstk_) genereres fra kontrollpanelet til kontoen din. Det er knyttet til organisasjonen, ikke til en person: det er tokenet man legger i hvelvet i CI. Se Kontoer og innlogging.