Gå til indhold

Automatisér dine API-tests i continuous integration

Et scenarie, der er bygget i brugerfladen, kører uændret i din pipeline. Denne vejledning handler om at skalere det op.

  • En Pro- eller Enterprise-plan.
  • Et organisationstoken (rstk_…), som skal lægges i din CI’s vault. (Muligheden for selv at oprette dette token fra dashboardet kommer snart.)
Terminal window
RESTORM_TOKEN=$RESTORM_TOKEN restorm \
--open ./api.restorm \
--run "Tests de fumée" \
--headless \
--all-logs \
--out run.log \
--param baseUrl=$BASE_URL

Exitkode 0 = succes, 1 = scenariet fejlede, 2 = fejl i kaldet, 3 = adgang nægtet.

Restorm er en desktopapplikation: selv uden vindue har den brug for en skærmserver. På en Linux-runner sætter du xvfb-run -a foran.

Terminal window
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headless

Skriv aldrig en hemmelighed ind i projektet. Erklær dine følsomme variabler med hemmelighedskilden miljøvariabel; din CI’s vault injicerer dem, og Restorm læser dem. Se Hemmeligheder.

env:
API_TOKEN: ${{ secrets.API_TOKEN }}

To fremgangsmåder, der supplerer hinanden:

  1. En scenarieparameter af typen environment: --param Env=staging. Det samme scenarie kører mod et hvilket som helst mål.
  2. Simple parametre: --param baseUrl=…, --param tenant=….

Konverteringen følger parameterens erklærede type, og en umulig konvertering får starten til at fejle med det samme frem for at køre med en forkert værdi. Se Variabler og data.

--out run.log skriver loggen løbende. Udgiv den som artefakt, også når jobbet fejler — det er jo netop dér, den gør nytte.

- uses: actions/upload-artifact@v4
if: always()
with:
name: journal-restorm
path: run.log

Et par vaner, der gør hele forskellen, når et rødt job dukker op klokken tre om natten:

  • Tydelige assertionsbeskeder. Feltet message i Assert-handlingen er dét, der dukker op i loggen: skriv dér, hvad du forventede.
  • Log ved de vigtige trin. Uden --all-logs udsendes kun posterne fra Log-handlingen: det er din røde tråd.
  • Skemavalidering frem for assertion felt for felt. Kobl errors-udgangen fra Schema validate til en Log: så får du den præcise liste over overtrædelser.
  • Throw på de kritiske else-udgange, så exitkoden afspejler fejlen.
  • Retry omkring ustabile netværkskald frem for at leve med flaksende tests. Se Kontrolflow.

Kæd oprydningen på hovedscenariets done-port: done venter på, at hele delgrafen er færdig. Se Porte og forbindelser.

FaldgrubeLøsning
Jobbet venter på en indtastningAngiv alle parametre med --param; i headless kan der ikke spørges om noget
En Toast-handling vises ikkeDet er normalt: den har ingen virkning i headless. Brug Log
MCP-serveren dukker ikke opDet er med vilje: uden en rigtig skærm starter den aldrig
Exitkode 3Tokenet eller planen — beskeden fortæller, hvilket af de fire tilfælde det er
Projektfilen er flyttet--open accepterer en sti relativ til repositoriet: hold den relativ

Pipelinene til GitHub Actions og GitLab CI står i Headless-kørsel og CI.