ここでは、Fiddler Classic(以下、Fiddler)のAutoResponder機能の使い方について、詳細に説明します。
Fiddlerとはそもそも何か、また、Fiddler全般の使い方に関しては、以下の記事をご確認ください:
FiddlerのAutoResponder機能を使用すると、「指定したURLパターンを持つHTTP(S)リクエスト」に対して、Fiddlerが「リクエストへの応答かActionを実行」します。
AutoResponder機能では、「指定したURLパターンを持つHTTP(S)リクエスト」と「応答/Action」を1つのルールとして定義・管理します。
本機能を使用することにより、バックエンドがなくても、必要なHTTP(S)レスポンスをAutoResponder機能で定義・作成して、アプリに応答できます。
AutoResponder機能は、以下の様なケースで力を発揮します:
- Webアプリのフロントエンド側の単体テスト
- Webアプリの不具合の再現
- 本番稼働中のWebアプリのJavaScriptファイルの一部をローカルのものと置き換えて、動作確認
FiddlerのComposer機能がバックエンド側の確認用であれば、AutoResponder機能はフロントエンド側の確認用といえます。
AutoResponder機能について、詳細を見ていきましょう。
AutoResponder機能の画面構成と使い方概要
Fiddlerは、デバッグツールとして誕生した背景もあることから、最初はどう使えばよいのか分からないことが多いツールです。
Composer機能は直感的に分かるのですが、AutoResponder機能は…(笑)。
本章では、そんなAutoResponder機能の画面構成と使い方の概要を説明します。AutoResponder機能の設定とルールの詳細は、次章以降で説明します。
画面構成
AutoResponder機能は、以下画面の緑枠、青枠、赤枠の大きく3つに分けることができます。それぞれの概要は以下の通りです:
- 緑:キャプチャしたHTTP(S)リクエスト一覧
- 青:AutoResponder機能の設定
- 赤:AutoResponder機能のルール
AutoResponder機能の画像を以下に示します:
使い方概要
ここでは、基本的な操作方法を説明します。
ルールは、以下の手順で作成・有効化します(画像にも手順を記載しています):
- 「AutoResponder」タブを選択
- 「Enables Rules」チェックボックスと「Accept all CONNECTS」チェックボックスを選択
「Enables Rules」チェックボックスにチェックが入っていると、Fiddlerの自動応答機能が有効となる - 「Add Rule」ボタンで、自動応答するルール(条件)を追加
- 「Rule Editor」で自動応答するルール(条件)の詳細を設定
最初のプルダウンには、合致するHTTP(S)リクエストを設定。2つ目のプルダウンでは、応答内容の詳細を設定。以下の画像では、HTTP(S)リクエストが「sandbox」に合致する場合、「200_SimpleHTML.dat」を応答するルールとなっている - 「Save」ボタンで、「Rule Editor」の内容を保存
保存した結果は、画面下部の一覧に表示(以下画像は、登録済の状態)。一覧の「左側のチェックボックス」が選択されているものが有効となる
AutoResponder機能の設定
ここでは、AutoResponder機能で設定できる項目を説明します。
設定項目
AutoResponder機能には、4つの設定項目があります。
Enable Rules(ルールの有効化/無効化)
AutoResponder機能を有効にします。
有効となっている場合は「上部のバーが緑色」となり、無効となっている場合は、「上部のバーが灰色」となります。
Accept all CONNECTs(CONNECTメソッドの受入)
CONNECTメソッドとは、HTTPS通信時に必要なトンネリングを開始する時に使用します。AutoResponder機能で、SSL/TLSを使用する場合は、チェックを入れておきましょう。よく分からない場合は、チェックを入れておけばOKです。
Unmatched requests passthrough(ルールに合致しないリクエストはスルー)
ルールに合致しない場合は、リクエストを対象のサーバに送り、その結果を応答します。ルールに合致したものは、Fiddlerが応答を返します。HTMLだけFiddlerで応答し、他のJavaScriptファイルやCSSファイルは、サーバから応答を返したい場合に使用します。
Enable Latency(レイテンシの有効化/無効化)
レイテンシを有効にします。レイテンシとは、リクエストを送信してから、応答が返ってくるまでの間の遅延時間のことです。レイテンシは、ミリ秒単位で指定できます。指定方法は、「AutoResponder機能のルール→ルール一覧」を参照ください。
AutoResponder機能のルール
ここでは、AutoResponder機能で作成できるルール及び、ルールの管理方法を説明します。
Rule Editorを使用したルールの作成方法
Rule Editorは、「URLパターン」と「応答/Action」の組み合わせを1つのルールとして定義するために使用します。AutoResponder機能では、ルール単位で有効/無効を設定できます。
ルールは、画面左上の「Add Rule」ボタンを選択後、「URLパターン」と「応答/Action」を定義することにより、追加できます:
- URLパターン:「Request URL Pattern」
HTTP(S)リクエストのパターンを指定 - 応答/Action:「Local file to return or *Action to execute」
URLパターンに合致したHTTP(S)リクエストに対する「HTTP(S)レスポンス内容」か「実行するFiddler Action」を指定。Fiddlerが他のセッションでキャプチャした「サーバからのHTTP(S)レスポンス」を応答することも可能
各テキストボックスやボタンの詳細は、以下の通りです:
「URLパターン」テキストボックス(Request URL Pattern)
「URLパターンで入力した内容に合致する/合致しない」URLをレスポンス対象とします。以下のURLパターンは、指定可能なものの一部となります:
URLパターン形式 | 説明 |
---|---|
文字列 | 入力した文字列に部分一致するURL。大文字、小文字を区別しません |
regex:文字列 | 入力した正規表現に合致するURL |
not:文字列 | 入力した文字列に合致しないURL |
EXACT:文字列 | 入力した文字列に完全一致するURL。大文字、小文字を区別する |
URLWithBody 文字列 | 入力したURL、HTTP BODY内に指定した文字列が合致するHTTP(S)リクエスト。 例:「URLWithBody:Upload.php regex:^.BodyText.$」。 Upload.phpのHTTP BODY内に「BodyText」が存在すれば一致 |
method | 入力したHTTPメソッドに合致するURL。 「GET」、「POST」、「OPTIONS」等を指定可 |
flag | Fiddler内で管理しているSessionFlagsを指定。 SessionFlagsで指定できる内容はFiddler公式マニュアルに記載がある |
Header | HTTP HEADER内に入力した文字列が存在する |
上記URLパターンは、1つのルール内で組み合わせて使用できます(「regexとnotの組み合わせ」、「methodと文字列の組み合わせ」など)。
URLパターン形式が分からない時は、プルダウンを選択すると入力形式の一覧が表示されます。Fiddlerの公式サイトに記載のないものもあります:
「応答/Action」テキストボックス(Local file to return or *Action to execute)
URLパターンに合致した「リクエストへの応答」か「*Action(予め定義されたアクション)」を指定します。応答は、以下の形式で指定できます(指定可能なものの一部となります):
Non-finalアクション/Finalアクションの違いは、後続のルールを実行するか/しないかです。Non-finalアクションは、実行後、ルール一覧にある一つ下のルールを実行します。Finalアクションを実行すると、その時点で処理は終了します。
応答形式 | 説明 | Non-final アクション/Final アクション |
---|---|---|
ローカルファイル | 「Fiddlerインストールディレクトリ\ResponseTemplates」以下のファイルの内容を応答する | Finalアクション |
URL | 入力したURLの応答を返す。Fiddlerがブラウザに変わり、URLへアクセスして、その応答を返す | Finalアクション |
セッション | Fiddlerがキャプチャしたセッションの応答を返す。キャプチャ済のセッションからドラッグアンドドロップでルールを作成する | Final Action |
*bpu | リクエストをFiddlerが受信した時にブレークする。 リクエスト内容をこちらで修正後、サーバに送信する | Non-finalアクション |
*bpafter | リクエストをサーバに送信し、レスポンスが戻ってきた時にFiddlerでブレークする。応答をクライアントに戻す前に修正できる | Non-finalアクション |
*delay:#### | 次のルールを処理するまでに、指定ミリ秒数待機する | Non-finalアクション |
*header:Name=Value | リクエストヘッダに指定したName=Valueを追加する | Non-finalアクション |
*flag:Name=Value | Fiddlerが認識するセッションフラグを追加するす。通常は、セッションフラグをセットするValueは重要ではなく、Nameの有無でFiddlerの挙動が変わる。 | Non-finalアクション |
*CORSPreflightAllow | CORSが許可されている旨のレスポンスを返す | Finalアクション |
*reset | TCP/IPにおけるRSTパケットをクライアントにレスポンスして、接続を強制終了する | Finalアクション |
*drop | クライアントにはレスポンスせずに、接続を閉じる | Finalアクション |
*exit | ルールの処理をこの時点で終わりにします | Finalアクション |
指定する 「リクエストへの応答」か「*Action(予め定義されたアクション)」 が分からない場合は、「URLパターン」テキストボックス同様、プルダウンを選択すると、入力形式の一覧が表示されます(指定可能なものの一部となります):
「Match only once」チェックボックス
「Match only once」チェックボックスにチェックを入れて、ルールを作成すると、該当ルールに合致するHTTP(S)リクエストが複数回Fiddlerに届いても、1度しか該当ルールを実行しません。
「Save」ボタン
「URLパターン」テキストボックス、「応答/Action」テキストボックスと「Match only once」チェックボックスの内容でルールを作成します。保存した内容は、ルールの一覧部に有効化されている状態で、表示されます。
ルール一覧
Rule Editorで作成したルール一覧を確認・修正できます。
コンテキストメニュー(ルール一覧を右クリックした際に表示されるメニュー)
ルール一覧では、定義したルールに対して、コンテキストメニューから「コメント」や「レイテンシ」の設定などができます。コンテキストメニューからできることを以下に示します:
コンテキストメニュー | 説明 |
---|---|
Remove | ルールを削除する |
Promote | ルールを一つ上に移動する |
Demote | ルールを一つ下に移動する |
Clone | ルールをコピーする |
Set Latency… | ルールのレイテンシを設定する(ミリ秒) |
Set Comment… | ルールにコメントを設定する |
Edit Response… | ルールのレスポンスを修正する |
Generate File | ルールをファイルに出力する |
Edit File With… | レスポンスファイルを選択したエディタで開く |
Open URL… | ルールのURLをブラウザで開く |
Group | 選択したルールをグループ化する |
UnGroup | 選択したルールをグループから除外する |
Find… | ルール検索用のダイアログボックスを表示する |
Export All… | ルールを全てfarxファイルとしてエクスポートする |
エクスポート
コンテキストメニューより、ルール一覧上のものをすべてエクスポートできます。 エクスポートしたファイルの拡張子は、「.farx」形式となります。
インポート
エクスポートしたルールは、画面左上の「Import...」ボタンより、Fiddlerにインポートできます。他の端末で作成したルールも、「.farx」形式でエクスポートしたものであれば、インポートできます。
グループ化・グループ化解除
大量のルールを登録すると、ルール一覧がカオス状態になります。その様な時は、関連するルールをまとめるグループ化を行い、整理するとよいでしょう。
グループ化したいルールを選択した後、以下のいずれかを選択します:
- 画面左上の「Group」ボタンを選択
- コンテキストメニューより、「Group」を選択
以下は、グループ化した後の画面です:
グループ化を解除したい場合は、該当のグループを選択→「Ungroup」ボタンを選択するか、コンテキストメニューから「UnGroup」を選択します。
Rule Editorのその他機能
Rule Editorのその他機能を以下に示します:
「Test」リンク
「Test」リンクを選択すると、「URLパターン」確認用のダイアログボックスが開きます:
ダイアログボックスの「URL Pattern」を変更して、ルールの「URLパターン」としたい場合は、「Save Changes」ボタンを選択します。
AutoResponder機能の説明は以上です。