Aller au contenu

Ekzekutimi headless dhe integrimi i vazhdueshëm

Një skenar i ndërtuar brenda ndërfaqes ekzekutohet pa dritare nga rreshti i komandës. Kjo është rruga që i shndërron testet tuaja të API-ve në një hap të pipeline-it.

Skenari «Find pets by status» brenda editorit: një veprim Input/Param i quajtur status, kërkesa «Finds Pets by status» dhe një Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumentiRoli
--open <path>, -oProjekti që do të hapet. I detyrueshëm me --run
--run <target>Skenari që do të ekzekutohet. Prania e tij aktivizon modalitetin e rreshtit të komandës
--by <name|id>Si e tregon --run skenarin: me emër (parazgjedhje) ose me identifikues
--headlessAsnjë dritare. Pa të, dritarja shfaqet ndërsa regjistri rrëshqet në konsolë
--param name=valueNjë vlerë për një parametër hyrës të skenarit (një kuti Input / Param). I përsëritshëm
--all-logsPërfshin zërat e motorit; si parazgjedhje lëshohen vetëm ata të veprimit Log
--out <file>E shkruan regjistrin edhe brenda një skedari, vazhdimisht
--clear-settings, -clsRiinicializon preferencat përpara nisjes

Një --param i keqformuar (pa =) sinjalizohet në daljen e gabimit dhe shpërfillet. name= (vlerë bosh) pranohet.

Vlerat shndërrohen sipas tipit të deklaruar të parametrit — shihni Variablat dhe të dhënat.

KodiKuptimi
0Skenari përfundoi si duhet
1Dështim, anulim, ose gabim i motorit
2Caku nuk u gjet, skedari --out i paarritshëm, ose --run pa --open
3E drejtë e refuzuar: RESTORM_TOKEN mungon, është i pavlefshëm ose i revokuar, plani është i pamjaftueshëm, ose pika e verifikimit është e paarritshme

Është pikërisht kjo konventë që e bën rezultatin drejtpërdrejt të përdorshëm nga një runner CI-je.

Regjistri shkruhet në daljen standarde, një zë në një kohë, sapo prodhohet, në formën e një sekuence YAML:

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

Nivelet paraprihen nga një pastilë: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Rreshtat nuk këputen kurrë — dalja mbetet e grep-ueshme. Gabimet nisen drejt daljes standarde të gabimeve.

Ky është saktësisht teksti që prodhon butoni «kopjo regjistrin» i ndërfaqes: i njëjti format nga të dyja anët.

Përdorni burimin e sekreteve variabël mjedisi: sekreti injektohet nga arka e CI-së suaj, Restorm vetëm e lexon dhe asgjë nuk shkruhet brenda projektit. Shihni Sekretet.

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' # versioni që doni të fiksoni
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' # versioni që doni të fiksoni
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]
  • Veprimet Toast nuk bëjnë asgjë; ekzekutimi vazhdon normalisht.
  • Parametrat nuk mund të kërkohen në mënyrë ndërvepruese: jepini të gjithë me --param, ose lërini të marrin vlerën e tyre të parazgjedhur.
  • Serveri MCP nuk niset kurrë mbi një makinë pa ekran, cilido qoftë rregullimi.

Token-i RESTORM_TOKEN (me parashtesën rstk_) gjenerohet nga paneli i llogarisë suaj. Ai është i lidhur me organizatën, jo me një person: ky është token-i që vendoset në arkën e CI-së. Shihni Llogaritë dhe lidhja.