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.

  • Desde npm — npm i -g restorm-cli@<versión> y luego restorm …. La compilación oficial se descarga una sola vez, se verifica con su suma de comprobación publicada y se guarda en caché, de modo que los trabajos posteriores en la misma máquina no descargan nada. El número de versión del paquete npm es la versión de Restorm que ejecuta: fijar uno fija el otro.
  • Desde el paquete del sistema (.deb, .rpm), como en los ejemplos siguientes: la mejor opción si construye su propia imagen de runner, ya que entonces el trabajo no descarga nada.

En GitHub, Monsieur-Dev/restorm-action reúne todo lo que describe esta página en un solo paso: instala Restorm mediante restorm-cli (una descarga verificada por suma de comprobación y cacheada entre trabajos), lo envuelve en xvfb, ejecuta su escenario sin interfaz y traduce cada código de salida en un error de trabajo con nombre.

- uses: Monsieur-Dev/restorm-action@v1
with:
project: ./api.restorm
scenario: Smoke tests
params: |
status=available
env:
RESTORM_TOKEN: ${{ secrets.RESTORM_TOKEN }}

La etiqueta de la acción fija la versión de Restorm (@v1.2.3 ejecuta Restorm 1.2.3), o pase una entrada version: explícita. Todas las entradas están documentadas en el README del repositorio. La receta manual de abajo sigue disponible para quien quiera control total.

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.