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.

restorm \ --open ./projet.restorm \ --run "Find pets by status" \ --headless \ --param status=availableDe argumenten
Section titled “De argumenten”| Argument | Rol |
|---|---|
--open <chemin>, -o | Het 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 |
--headless | Geen venster. Zonder deze optie verschijnt het venster terwijl het logboek over de console loopt |
--param nom=valeur | Een waarde voor een invoerparameter van het scenario (een Input / Param-vakje). Herhaalbaar |
--all-logs | Neemt 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, -cls | Zet 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.
De afsluitcodes
Section titled “De afsluitcodes”| Code | Betekenis |
|---|---|
0 | Het scenario is correct afgerond |
1 | Mislukking, afbreking, of een fout van de engine |
2 | Doel niet gevonden, --out-bestand niet toegankelijk, of --run zonder --open |
3 | Recht 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.
De uitvoer
Section titled “De uitvoer”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.
De geheimen in CI
Section titled “De geheimen in CI”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.
Restorm op de runner installeren
Section titled “Restorm op de runner installeren”- Via npm —
npm i -g restorm-cli@<versie>en daarnarestorm …. De officiële build wordt één keer gedownload, gecontroleerd aan de hand van de gepubliceerde checksum en in de cache bewaard, zodat latere taken op dezelfde machine niets downloaden. Het versienummer van het npm-pakket is de Restorm-versie die het start: het een vastzetten zet het ander vast. - Via het systeempakket (
.deb,.rpm), zoals in de voorbeelden hieronder — de betere keuze als u uw eigen runner-image bouwt, want dan downloadt de taak helemaal niets.
De officiële GitHub-action
Section titled “De officiële GitHub-action”Op GitHub bundelt Monsieur-Dev/restorm-action alles wat deze pagina beschrijft in één stap: het installeert Restorm via restorm-cli (één checksum-geverifieerde download, gecachet tussen jobs), wikkelt het in xvfb, draait uw scenario headless en vertaalt elke exitcode naar een benoemde jobfout.
- uses: Monsieur-Dev/restorm-action@v1 with: project: ./api.restorm scenario: Smoke tests params: | status=available env: RESTORM_TOKEN: ${{ secrets.RESTORM_TOKEN }}De tag van de action pint de Restorm-versie (@v1.2.3 draait Restorm 1.2.3), of geef expliciet version: mee. Alle invoer is gedocumenteerd in de README van de repository. Het handmatige recept hieronder blijft er voor wie volledige controle wil.
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' # 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.logGitLab CI
Section titled “GitLab CI”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]Wat er verandert in de headless modus
Section titled “Wat er verandert in de headless modus”- 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.
Een token verkrijgen
Section titled “Een token verkrijgen”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.