Ga naar inhoud

Uw API-tests automatiseren in continue integratie

Een scenario dat u in de interface hebt gebouwd, draait ongewijzigd in uw pipeline. Deze gids behandelt de opschaling.

  • Een Pro- of Enterprise-plan.
  • Een organisatietoken (rstk_…) dat u in de geheimenkluis van uw CI zet. (Het zelf aanmaken van dit token vanuit het dashboard komt binnenkort.)
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

Afsluitcode 0 = geslaagd, 1 = het scenario is mislukt, 2 = fout in de aanroep, 3 = recht geweigerd.

Restorm is een desktopapplicatie: ook zonder venster heeft die een displayserver nodig. Zet op een Linux-runner xvfb-run -a ervoor.

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

Schrijf nooit een geheim in het project. Declareer uw gevoelige variabelen met de geheimenbron omgevingsvariabele; de kluis van uw CI injecteert ze, Restorm leest ze. Zie Geheimen.

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

Twee aanpakken die elkaar aanvullen:

  1. Een scenarioparameter van het type environment: --param Env=staging. Hetzelfde scenario draait dan tegen elk willekeurig doel.
  2. Eenvoudige parameters: --param baseUrl=…, --param tenant=….

De conversie volgt het gedeclareerde type van de parameter, en een conversie die onmogelijk is, laat de start onmiddellijk mislukken in plaats van met een verkeerde waarde te draaien. Zie Variabelen en gegevens.

--out run.log schrijft het logboek doorlopend weg. Publiceer het als artefact, ook wanneer de job mislukt — juist dan hebt u het nodig.

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

Scenario’s schrijven die in CI leesbaar zijn

Section titled “Scenario’s schrijven die in CI leesbaar zijn”

Een paar gewoonten die alles veranderen wanneer er om 3 uur ‘s nachts een rode job opduikt:

  • Expliciete assertieberichten. Het veld message van de actie Assert is wat in het logboek verschijnt: schrijf er dus in wat u verwachtte.
  • Logregels bij de sleutelstappen. Zonder --all-logs worden alleen de items van de actie Log uitgestuurd: dat is uw verhaallijn.
  • Schemavalidatie in plaats van veld-voor-veld asserties. Sluit de uitvoer errors van Een schema valideren op een Log aan: u krijgt de precieze lijst met overtredingen.
  • Throw op de kritieke else-uitvoeren, zodat de afsluitcode de mislukking weerspiegelt.
  • Retry rond instabiele netwerkaanroepen, in plaats van intermitterende tests te accepteren. Zie Besturing.

Knoop het opruimen aan de poort done van het hoofdscenario: done wacht tot de hele subgraaf klaar is. Zie Poorten en verbindingen.

ValkuilOplossing
De job wacht op invoerGeef alle parameters mee met --param; headless kan er niets worden gevraagd
Een actie Toast verschijnt nietDat is normaal: die heeft headless geen effect. Gebruik Log
De MCP-server verschijnt nietDat is de bedoeling: zonder echt beeldscherm start hij nooit
Afsluitcode 3Het token of het plan — het bericht vertelt welk van de vier gevallen
Het projectbestand is verplaatst--open accepteert een pad relatief aan de repository: houd het relatief

De pipelines voor GitHub Actions en GitLab CI staan in Headless uitvoering en CI.