HttpRunner 4.x の導入と基本的な使用例

HttpRunner は HTTP(S)/HTTP2/WebSocket/RPC などのネットワークプロトコルをサポートするオープンソースのAPIテストツールで、インターフェーステストやパフォーマンステスト、デジタルエクスペリエンスモニタリングなど多様なテストを実行可能です。シンプルな操作性と拡張性に優れた設計が特徴です。

本記事ではv4.3.0バージョンを対象に解説します。

Windows環境でのインストール手順:

pip install httprunner

インストール後、hrunコマンドが利用可能になります。バージョン確認は以下の通りです。

C:\Users\DELL>hrun -V
v4.3.0

プロジェクト作成のための初期設定:

  1. 公式ドキュメントによると、4.Xからhrpコマンドが追加されています。GitHubからhrp.exeをダウンロードし、任意のディレクトリに配置します。

  2. 環境変数の設定:

%SystemRoot%\system32;%SystemRoot%;C:\Windows\System32\cmd.exe;
  1. プロジェクト作成コマンド:
hrp startproject sample_project

生成されるプロジェクト構成は以下の通りです。

sample_project
├── .env
├── .gitignore
├── debugtalk.py
├── har
│   └── .keep
├── reports
│   └── .keep
└── testcases
    ├── demo_ref_testcase.yml
    ├── demo_requests.yml
    └── demo_with_funplugin.json

各ディレクトリの役割:

  • .env:環境変数設定ファイル
  • .gitignore:Gitリポジトリへのアップロード時に無視するファイル
  • debugtalk.py:カスタム関数定義ファイル
  • har:リクエストキャプチャ用ディレクトリ
  • reports:テスト結果出力用ディレクトリ
  • testcases:テストケースの作成場所(YAMLファイル形式で記述)

テストケース作成例:

以下はセッション間のパラメータ依存を扱う例です。

  1. テストプラットフォームへの認証を行いアクセストークンを取得
  2. 取得したトークンをヘッダーに含めてタスク一覧を取得

テストケースファイル(sample_test.yml):

config:
    name: "platform_authentication"
    variables:
        user_id: admin
        auth_key: secure2023
    headers:
        User-Agent: ${get_device_id()}
    verify: False
    export: [ "session_token" ]

teststeps:
-
    name: "認証処理"
    request:
        method: POST
        url: /auth/login
        headers:
            Content-Type: application/json
            User-Agent: HttpRunner/${get_device_id()}
        json:
            user_id: ${user_id}
            auth_key: ${auth_key}
    extract:
        session_token: "response.token"
    validate:
        - eq: ["status_code", 200]
-
    name: "タスク一覧取得"
    request:
        method: GET
        url: /tasks
        headers:
            Accept: application/json
            Authorization: Bearer ${session_token}
        params:
            page: 1
            limit: 10
    validate:
        - eq: ["status_code", 200]
        - eq: ["response.code", 200]
        - eq: ["response.message", "正常終了"]

実行方法:

HTML形式のレポートを生成するには以下を実行します:

hrp run ./testcases/sample_test.yml --gen-html-report

よくある問題解決:

ベースURLが正しく反映されない場合、.envファイルに設定する必要があります。以下のように設定してください:

BASE_URL=https://test-platform.example.com

タグ: HttpRunner YAML APIテスト Python 環境変数

5月27日 21:45 投稿