第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"