Qc

FiddlerScriptプログラミング



Fiddlerscript Programming



FiddlerScriptは、Fiddlerの非常に強力な機能であり、Fiddler UIの拡張、新機能の追加、要求と応答のコンテンツの変更などを行うことができます。 。 。

1.FiddlerScriptを作成します

FiddlerScriptベース JScript.NET 言語。メニューの[ルール]> [ルールのカスタマイズ]をクリックして、FiddlerでFiddlerScriptエディターを開きます。ここでは、Fiddlerスクリプトスクリプトを記述できます。保存されると、Fiddlerはスクリプトを再コンパイルし、自動的にロードします。ロードが成功すると、サウンドがFiddlerで再生されます。ステータスバーに「CustomRules.jsがロードされました」というメッセージが表示されます。コンパイルが失敗した場合、エラーメッセージが表示されます。



FiddlerScript Editorプラグインがインストールされていない場合は、他のエディターでスクリプトを作成することもできますが、構文の強調表示とオートコンプリート、ダウンロードアドレスがあるため、FiddlerScriptEditorをお勧めします。 http://fiddler2.com/fiddlerscript-editor

画像



別のエディターを使用してFiddlerScriptを作成する場合は、[ツール]> [Fiddlerオプション]で設定し、次のようにエディターとしてnotepad ++を使用できます。

画像

スクリプトを作成するときにサードパーティの.netアセンブリを参照する必要がある場合は、次のように追加できます。



a。セミコロンで区切られた複数のアセンブリアドレスがある場合は、[参照]テキストボックスに参照するアセンブリアドレスを入力します。

画像

b。アセンブリをGACに登録するか、Fidder.exeがインストールされているディレクトリにアセンブリをコピーすることもできます。

アセンブリを追加したら、スクリプトを作成するときに、Importステートメントを使用してアセンブリの名前空間をインポートできます。

カスタムスクリプトファイルCustomRules.jsは、ユーザーのマイドキュメントディレクトリに書き込まれます。

win7システムは次の場所にあります:C: Users [your user] Documents Fiddler2 Scripts

xpシステムは次の場所にあります:C: Documents and Settings [your user] My Documents Fiddler2 Scripts

画像

カスタムルールを使用する必要がなくなった場合は、いくつかのファイルを削除できます。次回Fiddlerを起動すると、FiddlerScriptEditorはインストールディレクトリのSampleRules.jsを使用してファイルを再生成します。

2.FiddlerScriptのメインメソッド

FiddlerScriptファイルには、静的クラスHandlersが含まれています。一般に、コードはこのクラスの静的メソッドで作成する必要があります。

Fiddlerランタイムは、いくつかの「アプリケーションイベントメソッド」を自動的に実行します。

静的関数OnBoot フィドラーの起動時に呼び出されます
静的関数OnShutdown フィドラーが閉じているときに呼び出されます
静的関数OnAttach フィドラーがシステムプロキシとして登録されているときに呼び出されます
静的関数OnDetach フィドラーがシステムプロキシの登録を解除するときに呼び出されます
静的関数メイン フィドラーが起動するたび、およびCustomRules.jsスクリプトがコンパイルされるたびに呼び出されます。

//このメソッドでリクエストの内容を変更します。

static function OnBeforeRequest(oSession: Session)

//このメソッドの応答の内容を変更します

static function OnBeforeResponse(oSession: Session)

// Fiddlerコマンドをメソッドに含めます。Fiddlerインターフェイスの左下にあるQuickExecBoxは、スクリプトが指定されたコマンドを処理する場合はtrueを返し、それ以外の場合はfalseを返します。

static function OnExecAction(sParams: String[])

3.FiddlerScriptと属性

Handlersクラスを使用すると、属性を使用して外部に公開されたフィールドまたはメソッドに注釈を付けることができます。これは、FiddlerUIインターフェイスで作成できます。

使用する BindUIColumn 属性メソッドに注釈を追加します。これは、Webセッションのリストに追加できます。

public static BindUIColumn('Method', 60) function static FillMethodColumn(oS: Session): String { return oS.RequestMethod }

スクリプトを保存している限り、フィドラーセッションリストに現在のリクエストをマークするリクエストモード列があることがわかります。

画像

使用する クイックリンク 属性最上位のメニューを追加します。

画像

QuickLinkMenu('&Links') QuickLinkItem('Tenpay', 'https://www.tenpay.com') QuickLinkItem('Alipay', 'https://www.alipay.com') public static function DoLinksMenu(sText: String, sAction: String) { Utilities.LaunchHyperlink(sAction) }

画像

スクリプトを保存すると、Fiddlerの上部にメニュー項目が表示されます。メニュー項目をクリックすると、対応するWebサイトを開くことができます。

画像

4.Fiddlerでセッションの表示スタイルを変更します

セッションがFiddlerで表示するスタイルを制御できます。具体的なドキュメントは次のとおりです。 http://www.fiddlerbook.com/Fiddler/dev/SessionFlags.asp

このスクリプトをOnBeforeRequest(oSession:Session)メソッドの下に置き、[スクリプトの保存]をクリックして、すべての www.tenpay.com 会話は赤になります。

if (oSession.HostnameIs('www.tenpay.com')){ oSession['ui-color'] = 'red' }

画像

5.FiddlerスクリプトでCookieを変更します

Cookieは、実際にはリクエストのヘッダーです。

//すべてのCookieを削除します

oSession.oRequest.headers.Remove( 'Cookie')

//新しいCookie

oSession.oRequest.headers.Add( 'Cookie'、 'username = testnameloginpwd = 123456')

注:Fiddlerスクリプトは、単一のCookieを直接削除または編集することはできません。 Cookie文字列を操作するには、replaceメソッドまたは正規表現メソッドを使用する必要があります。

画像

static function OnBeforeRequest(oSession: Session) { if (oSession.HostnameIs('www.example.com') && oSession.uriContains('pagewithCookie') && oSession.oRequest.headers.Contains('Cookie')) { var sCookie = oSession.oRequest['Cookie'] // Use the replace method or the regular expression method to manipulate the string of the cookie sCookie = sCookie.Replace('cookieName=', 'ignoreme=') oSession.oRequest['Cookie'] = sCookie }

画像

6.Fiddlerスクリプトのリクエストの本文を変更します

方法1:

画像

static function OnBeforeRequest(oSession: Session) { if(oSession.uriContains('http://www.cnblogs.com/TankXiao/')) { // Get the body string in the Request var strBody=oSession.GetRequestBodyAsString() // Use regular expressions or replace methods to modify strings strBody=strBody.replace('1111','2222') // Play a dialog box to check the modified body   FiddlerObject.alert(strBody) // Rewrite the modified body back to the Request  oSession.utilSetRequestBody(strBody) } }

画像

方法2:本文のデータを直接置き換える非常に簡単な方法を提供します

oSession.utilReplaceInRequest('1111', '2222')

7.その他の参考資料

JScript.NET言語リファレンス: http://msdn.microsoft.com/en-us/library/z688wt03(VS.80).aspx

セッションのUIスタイルを制御します。 http://www.fiddlerbook.com/Fiddler/dev/SessionFlags.asp

Fiddlerスクリプトの公式ヘルプドキュメント: http://www.fiddlerbook.com/Fiddler/dev/ScriptSamples.asp

Fiddlerの要求と応答を変更します。 http://fiddler2.com/documentation/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse

フィドラーブログ: http://www.telerik.com/automated-testing-tools/blog/eric-lawrence.aspx

転載: https://www.cnblogs.com/weekend001/archive/2013/12/13/3473880.html