Gå til indhold

Headless-kørsel og continuous integration

Et scenarie, der er bygget i brugerfladen, kan køres uden vindue fra kommandolinjen. Det er vejen, der forvandler dine API-tests til et trin i en pipeline.

Scenariet »Find pets by status« i editoren: en Input/Param-handling ved navn status, anmodningen »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>, -oProjektet, der skal åbnes. Obligatorisk sammen med --run
--run <target>Scenariet, der skal køres. Dets tilstedeværelse aktiverer kommandolinjetilstanden
--by <name|id>Hvordan --run udpeger scenariet: ved navn (standard) eller ved id
--headlessIntet vindue. Uden det vises vinduet, mens loggen ruller i konsollen
--param name=valueEn værdi til en inputparameter i scenariet (en Input / Param-boks). Kan gentages
--all-logsInkluderer motorens poster; som standard udsendes kun dem fra Log-handlingen
--out <file>Skriver også loggen til en fil, løbende
--clear-settings, -clsNulstiller præferencerne inden start

En forkert formet --param (uden =) meldes på fejloutputtet og ignoreres. name= (tom værdi) accepteres.

Værdierne konverteres efter parameterens erklærede type — se Variabler og data.

KodeBetydning
0Scenariet blev afsluttet korrekt
1Fejl, annullering eller fejl i motoren
2Målet blev ikke fundet, --out-filen kunne ikke tilgås, eller --run uden --open
3Adgang nægtet: RESTORM_TOKEN mangler, er ugyldig eller tilbagekaldt, planen er utilstrækkelig, eller kontrolpunktet kunne ikke nås

Det er denne konvention, der gør resultatet direkte anvendeligt for en CI-runner.

Loggen skrives til standardoutputtet, én post ad gangen, så snart den er produceret, som en YAML-sekvens:

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

Niveauerne indledes med en prik: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Linjerne brydes aldrig — outputtet kan stadig grep’es. Fejl går til standardfejloutputtet.

Det er nøjagtig den tekst, som brugerfladens knap »kopiér loggen« producerer: samme format på begge sider.

Brug hemmelighedskilden miljøvariabel: hemmeligheden injiceres af din CI’s vault, Restorm læser den blot, og intet skrives ind i projektet. Se Hemmeligheder.

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-handlinger gør ingenting; kørslen fortsætter som normalt.
  • Parametre kan ikke udbedes interaktivt: angiv dem alle med --param, eller lad dem antage deres standardværdi.
  • MCP-serveren starter aldrig på en maskine uden skærm, uanset indstillingen.

Tokenet RESTORM_TOKEN (med præfikset rstk_) genereres fra din kontos dashboard. Det er knyttet til organisationen, ikke til en person: det er det token, man lægger i CI’ens vault. Se Konti og login.