第8章:CLIオプション

コマンド一覧

基本コマンド

runn run - シナリオ実行

runn run [PATH_PATTERN ...] [flags]

runn list - シナリオ一覧表示

runn list [PATH_PATTERN ...]

runn new - シナリオ生成

runn new [flags]

runn loadt - 負荷テスト実行

runn loadt [PATH_PATTERN ...] [flags]

runn coverage - カバレッジ表示

runn coverage [flags]

run コマンドのオプション

基本オプション

--verbose

詳細なログを出力します。デバッグ時に便利です。

runn run scenario.yml --verbose

--debug

デバッグモードで実行します。より詳細な情報が出力されます。

runn run scenario.yml --debug

実行制御

--fail-fast

最初のエラーで実行を停止します。CI/CDで時間を節約できます。

runn run tests/**/*.yml --fail-fast

--skip-test

test: セクションをスキップします。動作確認時に便利です。

runn run scenario.yml --skip-test

--skip-included

インクルードされたrunbookの単体実行をスキップします。

runn run --skip-included

並列実行

--concurrent

並列実行を制御します。デフォルトは "off" です。

# 5並列で実行
runn run tests/**/*.yml --concurrent 5

# 並列実行を有効化(デフォルト並列数)
runn run tests/**/*.yml --concurrent on

--shuffle

実行順序をランダム化します。

# ランダム化を有効化
runn run tests/**/*.yml --shuffle on

# シード値を指定してランダム化
runn run tests/**/*.yml --shuffle 42

フィルタリング

--label

ラベルでrunbookをフィルタリングします。

# 単一ラベル
runn run tests/**/*.yml --label api

# 複数ラベル(AND条件)
runn run tests/**/*.yml --label api --label critical

# 複雑なラベル条件
runn run tests/**/*.yml --label "users and auth"
runn run tests/**/*.yml --label "(users or projects) and not slow"

--id

IDでrunbookをフィルタリングします。

runn run tests/**/*.yml --id test-user-creation

--run

ファイルパスの正規表現でフィルタリングします。

runn run tests/**/*.yml --run "user.*test"

--sample

指定した数のrunbookをサンプリングして実行します。

runn run tests/**/*.yml --sample 10

--random

指定した数のrunbookをランダムに選択して実行します。

runn run tests/**/*.yml --random 5

変数とデータ

--var

変数を設定します。

runn run scenario.yml --var "base_url:https://api.example.com" --var "api_key:secret123"

--env-file

環境変数をファイルから読み込みます。

runn run scenario.yml --env-file .env.test

--overlay

runbookに値を上書きします。

runn run scenario.yml --overlay overlay.yml

--underlay

runbookの下に値を配置します。

runn run scenario.yml --underlay defaults.yml

ランナー設定

--runner

ランナーをrunbookに設定します。

runn run scenario.yml --runner "db:postgres://user:pass@localhost/testdb"

--host-rules

ホストルールを設定します。

runn run scenario.yml --host-rules "api.example.com=localhost:8080,cdn.example.com=localhost:8081"

HTTPランナーオプション

--http-openapi3

OpenAPI v3ドキュメントのパスを設定します。

runn run scenario.yml --http-openapi3 openapi.yml
runn run scenario.yml --http-openapi3 api:openapi.yml

gRPCランナーオプション

--grpc-proto

protoソースファイルを指定します。

runn run scenario.yml --grpc-proto service.proto

--grpc-import-path

protoファイルのインポートパスを設定します。

runn run scenario.yml --grpc-import-path ./proto

--grpc-no-tls

すべてのgRPCランナーでTLSを無効化します。

runn run scenario.yml --grpc-no-tls

--grpc-buf-*

buf関連の設定を行います。

runn run scenario.yml --grpc-buf-config buf.yaml --grpc-buf-dir ./proto

出力とレポート

--format

結果の出力フォーマットを指定します。

# JSON形式で出力
runn run scenario.yml --format json

# JUnit XML形式で出力
runn run scenario.yml --format junit

--capture

実行結果をキャプチャして保存します。

runn run scenario.yml --capture results/

--profile

プロファイリングを有効化します。

runn run scenario.yml --profile --profile-out profile.prof

分散実行

--shard-n / --shard-index

runbookを分散実行します。

# 3つのシャードに分割し、1番目のシャードを実行
runn run tests/**/*.yml --shard-n 3 --shard-index 0

その他のオプション

--attach

runnプロセスにアタッチします。

runn run scenario.yml --attach

--force-color

非TTY環境でも色付き出力を強制します。

runn run scenario.yml --force-color

--wait-timeout

クリーンアップ処理のタイムアウトを設定します。

runn run scenario.yml --wait-timeout 30s

--cache-dir

リモートrunbookのキャッシュディレクトリを指定します。

runn run https://example.com/scenario.yml --cache-dir .cache/

--retain-cache-dir

リモートrunbookのキャッシュを保持します。

runn run https://example.com/scenario.yml --retain-cache-dir

new コマンドのオプション

--and-run

作成後すぐに実行します。

runn new --and-run --out test.yml -- curl https://api.example.com

--desc

シナリオに説明を追加します。

runn new --desc "User API test" --out user-test.yml

--out

出力ファイル名を指定します。

runn new --out scenario.yml -- curl https://api.example.com

グローバルオプション

--scopes

runnの追加スコープを設定します。

runn run scenario.yml --scopes "run:exec"

活用例

CI/CDでの利用

# 高速フェイルでAPIテストを並列実行
runn run tests/api/**/*.yml \
  --label api \
  --label "not slow" \
  --concurrent 10 \
  --fail-fast \
  --format junit > test-results.xml

デバッグ時の利用

# 詳細ログ付きで特定のテストを実行
runn run tests/user-api.yml \
  --verbose \
  --debug \
  --var "base_url:http://localhost:8080" \
  --skip-test

負荷テスト

# 10並列で30秒間負荷テストを実行
runn loadt tests/api/**/*.yml \
  --concurrent 10 \
  --duration 30s \
  --threshold "error_rate < 0.01"