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.
Vereisten
Section titled “Vereisten”- 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.)
Het principe
Section titled “Het principe”RESTORM_TOKEN=$RESTORM_TOKEN restorm \ --open ./api.restorm \ --run "Tests de fumée" \ --headless \ --all-logs \ --out run.log \ --param baseUrl=$BASE_URLAfsluitcode 0 = geslaagd, 1 = het scenario is mislukt, 2 = fout in de
aanroep, 3 = recht geweigerd.
Er is een virtueel beeldscherm nodig
Section titled “Er is een virtueel beeldscherm nodig”Restorm is een desktopapplicatie: ook zonder venster heeft die een displayserver
nodig. Zet op een Linux-runner xvfb-run -a ervoor.
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headlessDe geheimen
Section titled “De geheimen”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 }}Per omgeving parametriseren
Section titled “Per omgeving parametriseren”Twee aanpakken die elkaar aanvullen:
- Een scenarioparameter van het type
environment:--param Env=staging. Hetzelfde scenario draait dan tegen elk willekeurig doel. - 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.
Het logboek publiceren
Section titled “Het logboek publiceren”--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.logScenario’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
messagevan de actie Assert is wat in het logboek verschijnt: schrijf er dus in wat u verwachtte. - Logregels bij de sleutelstappen. Zonder
--all-logsworden alleen de items van de actie Log uitgestuurd: dat is uw verhaallijn. - Schemavalidatie in plaats van veld-voor-veld asserties. Sluit de uitvoer
errorsvan 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.
Opruimen
Section titled “Opruimen”Knoop het opruimen aan de poort done van het hoofdscenario: done wacht tot
de hele subgraaf klaar is. Zie
Poorten en verbindingen.
Valkuilen om te kennen
Section titled “Valkuilen om te kennen”| Valkuil | Oplossing |
|---|---|
| De job wacht op invoer | Geef alle parameters mee met --param; headless kan er niets worden gevraagd |
| Een actie Toast verschijnt niet | Dat is normaal: die heeft headless geen effect. Gebruik Log |
| De MCP-server verschijnt niet | Dat is de bedoeling: zonder echt beeldscherm start hij nooit |
Afsluitcode 3 | Het 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 |
Volledige voorbeelden
Section titled “Volledige voorbeelden”De pipelines voor GitHub Actions en GitLab CI staan in Headless uitvoering en CI.