Hoppa till innehåll

Headless-körning och kontinuerlig integration

Ett scenario som byggts i gränssnittet körs utan fönster från kommandoraden. Det är vägen som förvandlar dina API-tester till ett steg i en pipeline.

Scenariot ”Find pets by status” i editorn: en Input/Param-åtgärd som heter status, begäran ”Finds Pets by status” och en Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumentRoll
--open <sökväg>, -oProjektet som ska öppnas. Obligatoriskt med --run
--run <mål>Scenariot som ska köras. Att det finns med aktiverar kommandoradsläget
--by <name|id>Hur --run pekar ut scenariot: med namn (standard) eller med identifierare
--headlessInget fönster. Utan det visas fönstret medan loggen rullar i konsolen
--param namn=värdeEtt värde för en ingångsparameter i scenariot (en Input / Param-ruta). Kan upprepas
--all-logsTar med motorns poster; som standard skickas bara de från åtgärden Log
--out <fil>Skriver också loggen till en fil, efter hand
--clear-settings, -clsÅterställer inställningarna före starten

En felformad --param (utan =) rapporteras på felutmatningen och ignoreras. namn= (tomt värde) accepteras.

Värdena konverteras enligt parameterns deklarerade typ — se Variabler och data.

KodBetydelse
0Scenariot avslutades korrekt
1Misslyckande, avbrott, eller fel i motorn
2Målet hittades inte, filen --out är oåtkomlig, eller --run utan --open
3Nekad rättighet: RESTORM_TOKEN saknas, är ogiltig eller återkallad, planen räcker inte, eller kontrollpunkten går inte att nå

Det är den konventionen som gör resultatet direkt användbart för en CI-runner.

Loggen skrivs till standardutmatningen, en post i taget, så snart den produceras, som en YAML-sekvens:

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

Nivåerna föregås av en markering: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Raderna bryts aldrig — utmatningen förblir grep-bar. Felen går till standardfelutmatningen.

Det är exakt den text som knappen ”kopiera loggen” i gränssnittet ger: samma format på båda sidor.

Använd hemlighetskällan miljövariabel: hemligheten injiceras av din CI:s valv, Restorm bara läser den, och ingenting skrivs i projektet. Se Hemligheter.

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' # la version que vous voulez épingler
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' # la version que vous voulez épingler
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-åtgärderna gör ingenting; körningen fortsätter som vanligt.
  • Parametrar kan inte efterfrågas interaktivt: skicka in dem alla med --param, eller låt dem ta sitt standardvärde.
  • MCP-servern startar aldrig på en maskin utan skärm, oavsett inställning.

Token RESTORM_TOKEN (med prefixet rstk_) genereras från kontrollpanelen för ditt konto. Den är knuten till organisationen, inte till en person: det är den token man lägger i CI:ns valv. Se Konton och inloggning.