天天看點

Fiddler教程

Fiddler的基本介紹

  m

  Fiddler官方網站提供了大量的幫助文檔和視訊教程, 這是學習Fiddler的最好資料。

  Fiddler是最強大最好用的Web調試工具之一,它能記錄所有用戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料,Fiddler包含了一個強大的基于事件腳本的子系統,并且能使用.net語言進行擴充

  你對HTTP 協定越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能幫助你了解HTTP協定。

  Fiddler無論對開發人員或者測試人員來說,都是非常有用的工具。

  Fiddler的工作原理

  Fiddler 是以代理web伺服器的形式工作的,它使用代理位址:127.0.0.1,端口:8888。當Fiddler退出的時候它會自動登出,這樣就不會影響别的程式。不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動登出,會造成網頁無法通路。解決的辦法是重新啟動下Fiddler。

  同類的其它工具

  同類的工具有: httpwatch, firebug, wireshark

  Fiddler 如何捕獲Firefox的會話

  能支援HTTP代理的任意程式的資料包都能被Fiddler嗅探到,Fiddler的運作機制其實就是本機上監聽8888端口的HTTP代理。 Fiddler2啟動的時候預設IE的代理設為了127.0.0.1:8888,而其他浏覽器是需要手動設定的,是以将Firefox的代理改為127.0.0.1:8888就可以監聽資料了。

  Firefox 上通過如下步驟設定代理

  點選: Tools -> Options,  在Options 對話框上點選Advanced tab - > network tab -> setting.

  Fiddler如何捕獲HTTPS會話

  預設下,Fiddler不會捕獲HTTPS會話,需要你設定下, 打開Fiddler  Tool->Fiddler Options->HTTPS tab

  選中checkbox, 彈出如下的對話框,點選"YES"

  

  點選"Yes" 後,就設定好了。

  Fiddler的基本界面

  看看Fiddler的基本界面

  Fiddler的HTTP統計視圖

  通過陳列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些檔案生成了您目前請求的頁面。使用Statistics頁簽,使用者可以通過選擇多個會話來得來這幾個會話的總的資訊統計,比如多個請求和傳輸的位元組數。

  選擇第一個請求和最後一個請求,可獲得整個頁面加載所消耗的總體時間。從條形圖表中還可以分别出哪些請求耗時最多,進而對頁面的通路進行通路速度優化

  QuickExec指令行的使用

  Fiddler的左下角有一個指令行工具叫做QuickExec,允許你直接輸入指令。

  常見得指令有:

  help  打開官方的使用頁面介紹,所有的指令都會列出來

  cls    清屏  (Ctrl+x 也可以清屏)

  select  選擇會話的指令

  ?.png  用來選擇png字尾的圖檔

  bpu  截獲request

  Fiddler中設定斷點修改Request

  Fiddler最強大的功能莫過于設定斷點了,設定好斷點後,你可以修改httpRequest的任何資訊包括host, cookie或者表單中的資料。設定斷點有兩種方法:

  第一種:打開Fiddler 點選Rules-> Automatic Breakpoint  ->Before Requests(這種方法會中斷所有的會話)

  如何消除指令呢?  點選Rules-> Automatic Breakpoint  ->Disabled

  第二種:  在指令行中輸入指令:  bpu www.baidu.com   (這種方法隻會中斷www.baidu.com)

  如何消除指令呢?  在指令行中輸入指令 bpu

  看個執行個體,模拟部落格園的登入, 在IE中打開部落格園的登入頁面,輸入錯誤的使用者名和密碼,用Fiddler中斷會話,修改成正确的使用者名密碼。這樣就能成功登入:

  1. 用IE 打開部落格園的登入界面  http://passport.cnblogs.com/login.aspx

  2. 打開Fiddler,  在指令行中輸入bpu http://passport.cnblogs.com/login.aspx

  3. 輸入錯誤的使用者名和密碼,點選登入

  4. Fiddler 能中斷這次會話,選擇被中斷的會話,點選Inspectors tab下的WebForms tab 修改使用者名密碼,然後點選Run to Completion 如下圖所示。

  5. 結果是正确地登入了部落格園

  Fiddler中設定斷點修改Response

  當然Fiddler中也能修改Response:

  第一種:打開Fiddler 點選Rules-> Automatic Breakpoint  ->After Response  (這種方法會中斷所有的會話)

  第二種:  在指令行中輸入指令:  bpuafter www.baidu.com   (這種方法隻會中斷www.baidu.com)

  如何消除指令呢?  在指令行中輸入指令 bpuafter,

  具體用法和上節差不多,就不多說了。

  Fiddler中建立AutoResponder規則

  Fiddler 的AutoResponder tab允許你從本地傳回檔案,而不用将http request 發送到伺服器上。

  看個執行個體:

  1. 打開部落格園首頁,把部落格園的logo圖檔儲存到本地,并且對圖檔做些修改。

  2. 打開Fiddler 找到logo圖檔的會話, http://static.cnblogs.com/p_w_picpaths/logo_2012_lantern_festival.gif,  把這個會話拖到AutoResponer Tab下

  3. 選擇Enable automatic reaponses 和Unmatched requests passthrough

  4. 在下面的Rule Editor 下面選擇 Find a file... 選擇本地儲存的圖檔.  最後點選Save 儲存下。

  5.   再用IE部落格園首頁, 你會看到首頁的圖檔用的是本地的。

  Fiddler中如何過濾會話

  每次使用Fiddler, 打開一個網站,都能在Fiddler中看到幾十個會話,看得眼花缭亂。最好的辦法是過濾掉一些會話,比如過濾掉圖檔的會話。Fiddler中有過濾的功能, 在右邊的Filters tab中,裡面有很多選項, 稍微研究下,就知道怎麼用。

  Fiddler中會話比較功能

  選中2個會話,右鍵然後點選Compare,就可以用WinDiff來比較兩個會話的不同了(當然需要你安裝WinDiff)

  Fiddler中提供的編碼小工具

  點選Fiddler 工具欄上的TextWizard,  這個工具可以Encode和Decode string.

  Fiddler中查詢會話

  用快捷鍵Ctrl+F打開Find Sessions的對話框,輸入關鍵字查詢你要的會話。 查詢到的會話會用×××顯示。

  Fiddler中儲存會話

  有些時候我們需要把會話儲存下來,以便發給别人或者以後去分析。  儲存會話的步驟如下:

  選擇你想儲存的會話,然後點選File->Save->Selected Sessions

  Fiddler的script系統

  Fiddler最複雜的莫過于script系統了,官方的幫助文檔:http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp。

  首先先安裝SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下圖

  安裝成功後Fiddler 就會多了一個Fiddler Script tab,如下圖:

  在裡面我們就可以編寫腳本了, 看個執行個體讓所有cnblogs的會話都顯示紅色。

  把這段腳本放在OnBeforeRequest(oSession: Session) 方法下,并且點選"Save script"

if (oSession.HostnameIs("www.cnblogs.com")) {   oSession["ui-color"] = "red"; }

  這樣所有的cnblogs的會話都會顯示紅色。

  如何在VS調試網站的時候使用Fiddler

  我們在用visual stuido 開發ASP.NET網站的時候也需要用Fiddler來分析HTTP, 預設的時候Fiddler是不能嗅探到localhost的網站。不過隻要在localhost後面加個點号,Fiddler就能嗅探到。

  例如:原本ASP.Net的位址是 http://localhost:2391/Default.aspx,  加個點号後,變成 http://localhost.:2391/Default.aspx 就可以了

繼續閱讀