HTTPRunner 4.xにおけるパラメータ化の実装手法

HTTPRunner 4.xでは、parametersキーワードを用いてテストデータのパラメータ化を実現します。データソースは以下の3パターンで提供可能です:

  • YAMLファイル内に直接定義する静的リスト
  • 外部CSVファイルからの参照
  • カスタム関数による動的生成

パラメータ化の基本パターン

主に2種類の実装方法があります:

  1. 単一パラメータ化:共通値を持つ項目(例:固定パスワード)に対して、変動値(例:ユーザーID)をリストで提供
  2. 連動パラメータ化:複数項目をハイフン(-)で結合したキー名で定義し、関連値を配列で管理

連動パラメータ化の具体例:

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件の独立テストとして出力されます。

タグ: httprunner4 parameterization test-automation YAML csv

5月23日 10:33 投稿