HTTPRunner 4.xでは、parametersキーワードを用いてテストデータのパラメータ化を実現します。データソースは以下の3パターンで提供可能です:
- YAMLファイル内に直接定義する静的リスト
- 外部CSVファイルからの参照
- カスタム関数による動的生成
パラメータ化の基本パターン
主に2種類の実装方法があります:
- 単一パラメータ化:共通値を持つ項目(例:固定パスワード)に対して、変動値(例:ユーザーID)をリストで提供
- 連動パラメータ化:複数項目をハイフン(-)で結合したキー名で定義し、関連値を配列で管理
連動パラメータ化の具体例:
config:
name: ユーザー認証テスト
parameters:
user_id-auth_token:
- [ test_user_01, "pass1!" ]
- [ test_user_02, "secure2@" ]
- [ test_user_03, "token#3" ]
- [ test_user_04, "verify4$" ]
データソースの選択基準
| 実装方法 | 適用シナリオ |
|---|---|
| YAML/JSON内リスト定義 | テストケース数が少ないシンプルなケース |
| CSVファイル参照(parameterize関数利用) | 大量データが必要な場合の効率的管理 |
| debugtalk.pyのカスタム関数 | 動的なデータ生成や複雑なロジックが必要な場合 |
単一パラメータ実装例
共通パスワード("default_pass")に対して、ユーザーIDをリストで提供:
config:
name: ログインテスト
parameters:
user_id: [ user_a, user_b, user_c, user_d ]
teststeps:
- name: 認証リクエスト
request:
method: POST
url: ${ENV(api_root)}/v1/auth
json:
id: ${user_id}
secret: "default_pass"
validate:
- eq: [status_code, 200]
- contains: [body.message, "success"]
実行コマンド:hrp run cases/auth_flow.yml --gen-html-report で4つのテストケースを生成
連動パラメータ実装例
ユーザーIDと認証トークンを連動させたテストケース:
config:
name: 連動認証テスト
parameters:
account-credential:
- [ admin_jp, "adm!nJP" ]
- [ guest_us, "guesT789" ]
- [ manager_eu, "m@n4gerEU" ]
teststeps:
- name: 認証処理
request:
method: POST
url: ${ENV(api_root)}/v1/session
json:
account: ${account}
credential: ${credential}
validate:
- eq: [status_code, 200]
- eq: [body.status, "active"]
直積組み合わせの活用
複数パラメータを定義すると、自動的に直積組み合わせが生成されます。例:
config:
parameters:
user_role: [ admin, editor, viewer ]
locale: [ ja-JP, en-US, zh-CN ]
teststeps:
- request:
url: /api/profile?role=${user_role}&lang=${locale}
3×3=9パターンのテストケースが自動生成され、全組み合わせを網羅的に検証可能。実行レポートでは9件の独立テストとして出力されます。