コンテンツにスキップ

ヘッドレス実行と継続的インテグレーション

インターフェースで組み立てたシナリオは、コマンドラインから ウィンドウなしで 実行できます。API テストをパイプラインの 1 ステップに変えるための道筋です。

エディターに表示されたシナリオ「Find pets by status」。status という名前の Input/Param アクション、リクエスト「Finds Pets by status」、そして Log で構成されています

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
引数役割
--open <path>、-o開くプロジェクト。--run と併用する場合は必須
--run <target>実行するシナリオ。これを指定するとコマンドラインモードが有効になります
--by <name|id>--run がシナリオを指し示す方法。名前(既定)または識別子
--headlessウィンドウを表示しません。指定しない場合はウィンドウが表示され、ログはコンソールに流れます
--param name=valueシナリオの入力パラメーター(Input / Param ボックス)に渡す値。繰り返し指定できます
--all-logsエンジンのエントリーも含めます。既定では Log アクションのものだけが出力されます
--out <file>ログをファイルにも書き出します(リアルタイム)
--clear-settings、-cls起動前に設定を初期化します

書式が不正な --param(= がないもの)は標準エラー出力に報告され、無視されます。 nom=(値が空)は受け付けられます。

値はパラメーターの 宣言された型 に従って変換されます — 変数とデータ を参照してください。

コード意味
0シナリオが正常に終了しました
1失敗、キャンセル、またはエンジンのエラー
2対象が見つからない、--out のファイルにアクセスできない、または --open なしの --run
3権限が拒否されました:RESTORM_TOKEN がない / 無効 / 失効している、プランが不足している、または検証エンドポイントに到達できない

この規約のおかげで、結果を CI ランナーからそのまま利用できます。

ログは標準出力に、生成された時点で 1 エントリーずつ、YAML のシーケンスとして 書き出されます。

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

レベルには印が付きます。⚪ debug、🔵 info、🟠 warn、🔴 error です。行が 折り返されることはないので、出力は grep できます。エラーは標準エラー出力に出ます。

これはインターフェースの「ログをコピー」ボタンが生成するテキストと まったく同じ です。どちらも同じ形式です。

シークレットのソースには 環境変数 を使ってください。シークレットは CI の 保管庫から注入され、Restorm はそれを読むだけで、プロジェクトには何も書き込まれません。 シークレット を参照してください。

ランナーへの Restorm のインストール

Section titled “ランナーへの Restorm のインストール”
  • npm から — npm i -g restorm-cli@<バージョン> のあとに restorm …。公式ビルドのダウンロードは一度だけで、公開されたチェックサムで検証してからキャッシュに保存するため、同じマシンでの以降のジョブは何もダウンロードしません。npm パッケージのバージョン番号は、それが起動する Restorm のバージョンそのものです。片方を固定すれば、もう片方も固定されます。
  • システムパッケージから(.deb、.rpm)— 下の例のとおりです。自前のランナーイメージを作る場合はこちらが有利で、ジョブは何一つダウンロードしません。

GitHub では、Monsieur-Dev/restorm-action がこのページで説明する内容をひとつのステップにまとめます。restorm-cli 経由で Restorm をインストールし(チェックサム検証済みのダウンロードは一度だけ、ジョブ間でキャッシュ)、xvfb でラップし、シナリオをヘッドレスで実行して、各終了コードを名前付きのジョブエラーに変換します。

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

アクションのタグが Restorm のバージョンを固定します(@v1.2.3 は Restorm 1.2.3 を実行)。明示的な version: 入力も渡せます。すべての入力はリポジトリの README に記載されています。完全に制御したい場合は、下の手動レシピをそのまま使えます。

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' # 固定したいバージョン
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' # 固定したいバージョン
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]
  • Toast アクションは何もしません。実行はそのまま続きます。
  • パラメーターを対話的に尋ねることはできません。--param ですべて渡すか、既定値を 使わせてください。
  • ディスプレイのないマシンでは、設定がどうであれ MCP サーバー は起動しません。

RESTORM_TOKEN トークン(接頭辞は rstk_)は、アカウントのダッシュボードから 生成します。個人ではなく 組織に紐づく もので、CI の保管庫に入れるのはこの トークンです。 アカウントとログイン を参照してください。