Siirry sisältöön

Headless-suoritus ja jatkuva integraatio

Käyttöliittymässä rakennettu skenaario suoritetaan ilman ikkunaa komentoriviltä. Tämä on polku, joka muuttaa API-testisi putken vaiheeksi.

Skenaario ”Find pets by status” editorissa: Input/Param-toiminto nimeltä status, pyyntö ”Finds Pets by status” ja Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumenttiTarkoitus
--open <path>, -oAvattava projekti. Pakollinen --run-argumentin kanssa
--run <target>Suoritettava skenaario. Sen läsnäolo aktivoi komentorivitilan
--by <name|id>Miten --run osoittaa skenaarion: nimellä (oletus) vai tunnisteella
--headlessEi ikkunaa. Ilman sitä ikkuna näkyy samalla kun loki vierii konsolissa
--param name=valueArvo skenaarion syöteparametrille (Input / Param -lohkolle). Toistettavissa
--all-logsSisällyttää moottorin merkinnät; oletuksena vain Log-toiminnon merkinnät lähetetään
--out <file>Kirjoittaa lokin myös tiedostoon reaaliajassa
--clear-settings, -clsPalauttaa asetukset oletuksiin ennen käynnistystä

Väärin muotoiltu --param (ilman merkkiä =) ilmoitetaan virhetulosteessa ja ohitetaan. name= (tyhjä arvo) hyväksytään.

Arvot muunnetaan parametrin ilmoitetun tyypin mukaan — katso Muuttujat ja data.

KoodiMerkitys
0Skenaario päättyi oikein
1Epäonnistuminen, peruutus tai moottorin virhe
2Kohdetta ei löydy, --out-tiedosto ei ole käytettävissä tai --run ilman --open
3Oikeus evätty: RESTORM_TOKEN puuttuu, on virheellinen tai kumottu, tilaustaso ei riitä tai tarkistuspistettä ei tavoiteta

Juuri tämä käytäntö tekee tuloksesta suoraan CI-ajurin hyödynnettävän.

Loki kirjoitetaan vakiotulosteeseen yksi merkintä kerrallaan heti kun se on tuotettu, YAML-sekvenssin muodossa:

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

Tasojen edessä on merkkipiste: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Rivejä ei koskaan katkaista — tuloste pysyy grep-kelpoisena. Virheet menevät vakiovirhetulosteeseen.

Tämä on täsmälleen se teksti, jonka käyttöliittymän ”kopioi loki” -painike tuottaa: sama muoto molemmin puolin.

Käytä salaisuuslähdettä ympäristömuuttuja: salaisuuden syöttää CI:si holvi, Restorm vain lukee sen, eikä mitään kirjoiteta projektiin. Katso Salaisuudet.

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-toiminnot eivät tee mitään; suoritus jatkuu normaalisti.
  • Parametreja ei voi kysyä vuorovaikutteisesti: anna ne kaikki --param-argumentilla tai anna niiden ottaa oletusarvonsa.
  • MCP-palvelin ei käynnisty koskaan näytöttömällä koneella, riippumatta asetuksesta.

Token RESTORM_TOKEN (etuliite rstk_) luodaan tilisi hallintapaneelista. Se on sidottu organisaatioon, ei henkilöön: juuri tämä token pannaan CI:n holviin. Katso Tilit ja kirjautuminen.