Перейти до вмісту

Безекранне виконання та безперервна інтеграція

Сценарій, побудований в інтерфейсі, виконується без вікна з командного рядка. Це шлях, який перетворює ваші тести API на крок конвеєра.

Сценарій «Find pets by status» у редакторі: дія Input/Param на ім'я status, запит «Finds Pets by status» і Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
АргументРоль
--open <шлях>, -oПроєкт, який слід відкрити. Обов’язковий разом із --run
--run <ціль>Сценарій для виконання. Його наявність вмикає режим командного рядка
--by <name|id>Як --run позначає сценарій: за назвою (типово) чи за ідентифікатором
--headlessЖодного вікна. Без нього вікно показується, поки журнал біжить у консолі
--param ім'я=значенняЗначення для вхідного параметра сценарію (блоку Input / Param). Можна повторювати
--all-logsДодає записи рушія; типово видаються лише записи дії Log
--out <файл>Пише журнал ще й до файлу, одразу під час роботи
--clear-settings, -clsСкидає налаштування перед запуском

Хибно сформований --param (без =) відзначається у стандартному потоці помилок і пропускається. ім'я= (порожнє значення) приймається.

Значення перетворюються відповідно до оголошеного типу параметра — див. Змінні та дані.

КодЗначення
0Сценарій завершився правильно
1Невдача, скасування або помилка рушія
2Ціль не знайдено, файл --out недоступний або --run без --open
3Відмова в праві: RESTORM_TOKEN відсутній, недійсний чи відкликаний, плану недостатньо або точка перевірки недосяжна

Саме ця угода робить результат безпосередньо придатним для агента CI.

Журнал пишеться до стандартного виводу по одному запису, щойно його вироблено, у вигляді послідовності YAML:

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

Рівні позначаються кружечком: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Рядки ніколи не розриваються — вивід залишається придатним для grep. Помилки йдуть до стандартного потоку помилок.

Це точнісінько той текст, який дає кнопка «копіювати журнал» в інтерфейсі: однаковий формат з обох боків.

Використовуйте джерело секрету змінна середовища: секрет підставляє сховище вашого CI, Restorm лише читає його, і нічого не записується до проєкту. Див. Секрети.

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 version que vous voulez épingler
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 version que vous voulez épingler
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]

Що змінюється в безекранному режимі

Section titled “Що змінюється в безекранному режимі”
  • Дії Toast нічого не роблять; виконання триває звичайно.
  • Параметри неможливо запитати інтерактивно: передайте їх усі через --param або дайте їм узяти значення за замовчуванням.
  • Сервер MCP ніколи не запускається на машині без дисплея, хоч би яким було налаштування.

Токен RESTORM_TOKEN (із префіксом rstk_) генерується з панелі керування вашого облікового запису. Він прив’язаний до організації, а не до особи: саме цей токен кладуть до сховища CI. Див. Облікові записи та вхід.