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.

restorm \ --open ./projet.restorm \ --run "Find pets by status" \ --headless \ --param status=availableArgumenterne
Section titled “Argumenterne”| Argument | Rolle |
|---|---|
--open <path>, -o | Projektet, 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 |
--headless | Intet vindue. Uden det vises vinduet, mens loggen ruller i konsollen |
--param name=value | En værdi til en inputparameter i scenariet (en Input / Param-boks). Kan gentages |
--all-logs | Inkluderer motorens poster; som standard udsendes kun dem fra Log-handlingen |
--out <file> | Skriver også loggen til en fil, løbende |
--clear-settings, -cls | Nulstiller 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.
Exitkoderne
Section titled “Exitkoderne”| Kode | Betydning |
|---|---|
0 | Scenariet blev afsluttet korrekt |
1 | Fejl, annullering eller fejl i motoren |
2 | Målet blev ikke fundet, --out-filen kunne ikke tilgås, eller --run uden --open |
3 | Adgang 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.
Outputtet
Section titled “Outputtet”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.
Hemmeligheder i CI
Section titled “Hemmeligheder i CI”Brug hemmelighedskilden miljøvariabel: hemmeligheden injiceres af din CI’s vault, Restorm læser den blot, og intet skrives ind i projektet. Se Hemmeligheder.
Installer Restorm på runneren
Section titled “Installer Restorm på runneren”- Fra npm —
npm i -g restorm-cli@<version>og derefterrestorm …. Den officielle bygning hentes én gang, kontrolleres mod sin offentliggjorte tjeksum og gemmes i cachen, så senere job på samme maskine ikke henter noget. Versionsnummeret på npm-pakken er den Restorm-version, den starter: fastlåser du det ene, fastlåser du det andet. - Fra systempakken (
.deb,.rpm), som i eksemplerne nedenfor — det bedste valg, hvis du bygger dit eget runner-image, for så henter jobbet slet ingenting.
Den officielle GitHub-action
Section titled “Den officielle GitHub-action”På GitHub samler Monsieur-Dev/restorm-action alt, hvad denne side beskriver, i ét trin: den installerer Restorm via restorm-cli (én tjeksumverificeret download, cachet mellem jobs), pakker det ind i xvfb, kører dit scenarie headless og oversætter hver exitkode til en navngiven jobfejl.
- uses: Monsieur-Dev/restorm-action@v1 with: project: ./api.restorm scenario: Smoke tests params: | status=available env: RESTORM_TOKEN: ${{ secrets.RESTORM_TOKEN }}Actionens tag fastlåser Restorm-versionen (@v1.2.3 kører Restorm 1.2.3), eller angiv et eksplicit version:-input. Alle inputs er dokumenteret i repositoriets README. Den manuelle opskrift nedenfor findes stadig for dem, der vil have fuld kontrol.
GitHub Actions
Section titled “GitHub Actions”name: Tests d'APIon: [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.logGitLab CI
Section titled “GitLab CI”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]Hvad der er anderledes i headless
Section titled “Hvad der er anderledes i headless”- 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.
Sådan får du et token
Section titled “Sådan får du et token”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.