mablのブラウザテストを設定して、各リクエストにカスタムHTTPヘッダーを付けることができます。カスタムHTTPヘッダーは、mablのテスト実行からのリクエストをアプリケーションのセキュリティ層やルーティング層に識別させ、一般的なボットトラフィックとして扱われないようにするために使用されることが最も多くあります。具体的には次のような用途があります。
- ボット対策のバイパス - テスト環境でのcaptcha、reCAPTCHA、Cloudflareのボットブロック、その他類似の制限を回避します。
- 追加の認証ステップのスキップ - 認識されないクライアントに対する追加のMFAプロンプトやセキュリティチャレンジを回避します。
- 機能フラグの切り替えやフィーチャーブランチのテスト - 特定のアプリケーション動作を強制したり、実験的なバリアントをテストしたりします。
- 特定の環境やバックエンドへのリクエストのルーティング - 特定の環境、バックエンドクラスタ、地理的リージョンへトラフィックを誘導します。
この記事では、カスタムHTTPヘッダーを使ってmablのテストを設定する方法を説明します。
サーバー側の設定
mablのテストにヘッダーを追加する前に、セキュリティチームまたはDevOpsチームと連携して、アプリケーション側でヘッダールールを設定する必要があります。
-
X-Mabl-Bypassのようなヘッダー名と、安全な値を決定します。 - このヘッダーが含まれている場合に正しい動作を実装するルールを、アプリケーションまたはWAFに作成します。
- 認証バイパスなどの機密性の高い機能については、ルールが本番環境以外に限定されているか、mablの静的IPレンジに対して許可されていることを確認します。
ホスティングプラットフォームやセキュリティサービスによっては、ヘッダー名と値が自動的に生成され、その値に有効期限がある場合もあります。新しい値を取得したら、mablのテストのヘッダーを更新してください。
mablのテストへのカスタムHTTPヘッダーの追加
アプリケーションのカスタムヘッダーとルールを設定したら、mablのテストにヘッダーを追加できます。
プラン実行
プラン実行でカスタムHTTPヘッダーを指定するには、mablアプリでプランを編集します。[ブラウザ・デバイスの設定] セクションまでスクロールし、[追加設定] をクリックして、[カスタムHTTPヘッダーを送信する] をオンにします。
サーバー側で作成したキーと値のペアを追加します。
カスタムHTTPヘッダーの追加
ヘッダーは、スケジュール実行、デプロイメントイベントとしてのデプロイ時の実行、手動トリガーによる実行のいずれであっても、クラウドで実行されるプラン内のすべてのブラウザテストに適用されます。
アドホッククラウド実行
mablアプリ、mabl CLI、またはmabl MCPからトリガーするアドホッククラウド実行に、HTTPヘッダーを付けることができます。
- mablアプリ - 実行を開始する前に、アドホック実行パネルからカスタムHTTPヘッダーを追加します。
-
mabl CLI -
mabl tests run-cloudをhttp-headersフラグとともに使用します。 - mabl MCP - クラウド実行に適用したいHTTPヘッダーをAIクライアントに伝えます。
アドホッククラウド実行に適用したHTTPヘッダーは、テストには保存されません。次にテストでそれらを使用する場合は、もう一度追加する必要があります。
Trainerおよびローカルデスクトップ実行
トレーニングセッション中およびローカル実行でカスタムHTTPヘッダーを適用するには、mablアプリのメニューバーから設定を更新します: Edit > Preferences > HTTP headers。
[Preferences] メニュー
左側の [HTTPヘッダー] オプションを選択し、必要に応じてヘッダーを追加します。ヘッダーを削除せずに無効にする場合は、[Enabled] 列の対応するチェックボックスのチェックを外します。
[Preferences] メニューでのカスタムHTTPヘッダーの追加
[Preferences] メニューで構成したカスタムHTTPヘッダーは、お使いのmablデスクトップアプリのインスタンスでのローカルテスト実行とTrainerでの再生に適用されます。他のチームメンバーがローカルデスクトップ実行でこれらのヘッダーを使用する必要がある場合は、各自の [Preferences] メニューでヘッダーを設定する必要があります。
ローカルCLI実行
ローカルCLI実行では、デスクトップやプランの設定からヘッダーが継承されません。--from-plan-id でトリガーされるテストを含むローカルCLI実行でカスタムHTTPヘッダーを適用するには、--http-headers フラグを使用します。例:
mabl tests run --id {test-id} --http-headers x-header:foo
テストステップからヘッダーを設定
上記の方法では、ヘッダーの値は実行の開始前に固定されます。ブラウザテストの特定の時点からヘッダーを送信するには、HTTPヘッダーを設定する ステップを追加します。このステップ以降、テストが終わるまで、ブラウザはページの読み込み、スクリプト、画像、fetchやXHRの呼び出し、新しいタブを含め、送信するすべてのリクエストにそのヘッダーを付けます。このステップはテストとともに保存されるため、テストをどこで実行しても適用されます。
- mabl Trainerまたはクイック編集でテストを開きます。
- + (ステップを追加) > HTTPヘッダー をクリックします。
-
ヘッダー名 と ヘッダーの値 を入力します。どちらのフィールドも
{{@variable_name}}構文の変数に対応しています。 - OK をクリックします。
値には変数を使用できるため、テストの実行中に初めて判明する値をこのステップで送信できます。たとえば、APIステップでログインAPIを呼び出し、返されたセッショントークンを変数に保存して、それ以降のすべてのブラウザリクエストに {{@token}} として送信できます。
- 他のカスタムヘッダー - プラン、アドホック実行、デスクトップの Preferences、CLIで設定したヘッダーも、このステップと併せて引き続き適用されます。
- 値の変更 - テストの後半で、同じヘッダー名を指定した HTTPヘッダーを設定する ステップをもう1つ追加します。新しい値が古い値を置き換えます。ヘッダー名では大文字と小文字は区別されません。
- ログ - ヘッダーの値は、実行ログやテスト出力には表示されません。
- mabl CLI - このステップを含むテストをmabl CLIで実行するには、バージョン2.141.10以降を使用してください。
mablエージェントがテストを作成する際に、このステップを追加するよう依頼することもできます。例: 「ログインAPIの呼び出しの後、返されたトークンを x-session-token ヘッダーとしてすべてのリクエストに送信して」
制限事項
- カスタムHTTPヘッダーは、パフォーマンステストとモバイルテストではサポートされていません。
- リクエストにすでに認証ヘッダーが含まれている場合、mablはそれを上書きしません。
- プラン、アドホック実行、デスクトップの Preferences、CLIで設定したヘッダーは、実行時に変更できません。セッショントークンなど、テストの実行中に取得した値を送信するには、HTTPヘッダーを設定する ステップを使用します。
-
HTTPヘッダーを設定する ステップはブラウザのリクエストにのみ適用されます。同じテスト内のAPIステップでは、各ステップで定義されたヘッダーがそのまま使われます。また、このステップはモバイルテストやAPIテストでは使用できません。
Proxy-Authorizationヘッダーは設定できません。