HttpRunner は HTTP(S)/HTTP2/WebSocket/RPC などのネットワークプロトコルをサポートするオープンソースのAPIテストツールで、インターフェーステストやパフォーマンステスト、デジタルエクスペリエンスモニタリングなど多様なテストを実行可能です。シンプルな操作性と拡張性に優れた設計が特徴です。
本記事ではv4.3.0バージョンを対象に解説します。
Windows環境でのインストール手順:
pip install httprunner
インストール後、hrunコマンドが利用可能になります。バージョン確認は以下の通りです。
C:\Users\DELL>hrun -V
v4.3.0
プロジェクト作成のための初期設定:
-
公式ドキュメントによると、4.Xからhrpコマンドが追加されています。GitHubからhrp.exeをダウンロードし、任意のディレクトリに配置します。
-
環境変数の設定:
%SystemRoot%\system32;%SystemRoot%;C:\Windows\System32\cmd.exe;
- プロジェクト作成コマンド:
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ファイル形式で記述)
テストケース作成例:
以下はセッション間のパラメータ依存を扱う例です。
- テストプラットフォームへの認証を行いアクセストークンを取得
- 取得したトークンをヘッダーに含めてタスク一覧を取得
テストケースファイル(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