Ir al contenido

Ejecución headless e integración continua

Un escenario construido en la interfaz se ejecuta sin ventana desde la línea de comandos. Es el camino que convierte sus pruebas de API en una etapa del pipeline.

El escenario «Find pets by status» en el editor: una acción Input/Param llamada status, la petición «Finds Pets by status» y un Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ArgumentoFunción
--open <chemin>, -oEl proyecto que se va a abrir. Obligatorio con --run
--run <cible>El escenario que se va a ejecutar. Su presencia activa el modo de línea de comandos
--by <name|id>Cómo designa --run el escenario: por nombre (predeterminado) o por identificador
--headlessSin ninguna ventana. Sin él, la ventana se muestra mientras el registro se desplaza por la consola
--param nom=valeurUn valor para un parámetro de entrada del escenario (una caja Input / Param). Repetible
--all-logsIncluye las entradas del motor; por defecto solo se emiten las de la acción Log
--out <fichier>Escribe también el registro en un archivo, de forma continua
--clear-settings, -clsReinicia las preferencias antes del lanzamiento

Un --param mal formado (sin =) se señala en la salida de error y se ignora. nom= (valor vacío) se acepta.

Los valores se convierten según el tipo declarado del parámetro: consulte Variables y datos.

CódigoSignificado
0El escenario ha terminado correctamente
1Fallo, cancelación o error del motor
2Destino no encontrado, archivo --out inaccesible, o --run sin --open
3Permiso denegado: RESTORM_TOKEN ausente, no válido o revocado, plan insuficiente, o punto de verificación inalcanzable

Es esta convención la que hace que el resultado sea directamente aprovechable por un runner de CI.

El registro se escribe en la salida estándar, una entrada a la vez, en cuanto se produce, en forma de secuencia YAML:

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

Los niveles llevan como prefijo una marca: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Las líneas nunca se cortan: la salida sigue siendo apta para grep. Los errores salen por la salida de error estándar.

Es exactamente el texto que produce el botón «copiar el registro» de la interfaz: el mismo formato en ambos lados.

Use el origen de secretos variable de entorno: el secreto lo inyecta la bóveda de su CI, Restorm se limita a leerlo y nada se escribe en el proyecto. Consulte Secretos.

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 versión que quiera fijar
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 versión que quiera fijar
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]
  • Las acciones Toast no hacen nada; la ejecución continúa con normalidad.
  • Los parámetros no se pueden pedir de forma interactiva: proporciónelos todos con --param, o deje que tomen su valor por defecto.
  • El servidor MCP nunca arranca en una máquina sin pantalla, sea cual sea el ajuste.

El token RESTORM_TOKEN (con el prefijo rstk_) se genera desde el panel de control de su cuenta. Está vinculado a la organización, no a una persona: es el token que se pone en la bóveda de la CI. Consulte Cuentas e inicio de sesión.