最近在使用fiddler,發現這個真是非常最犀利的web調試工具,筆者這裡強烈推薦給大家;fiddler不管是對開發還是測試,還是産品;都是不可多得的工具;開發用來抓包定位問題; 測試用來抓包,回放測試記錄,構造發包用例。産品用來抓包記錄現場。
在介紹這一利器之前,我們先瞻仰一下他的作者Eric Eric目前就職于微軟。

相信很多人遇到和筆者類似的經曆,好不容易找到個破解版本的httpwatch,卻該版本發現其不支援chrome或firefox。或者想要構造發包請求,卻又要換到firefox,因為firefox有比較多得這樣插件。另外想要抓起手機擷取其他平台如MAC,目前同類型的工具中,比較少有會對其全面相容支援。
是以筆者推薦這款fiddler工具,主要看中其三點優勢:1、功能強大,其他工具有的功能它也有,其他工具沒有的功能它也有,支援http,https,ftp等協定;2、完全免費,長期免費。3、所有的浏覽器可以使用,所有的平台都可以使用。就沖着這三點,就值得擁有。
Fiddler功能太多,本人也隻是在平時工作用用到他的部分功能,也沒有深入全面的研究,這篇文字隻是抛磚引玉,有興趣的可以全面仔細的研究該工具。本文主要内容介紹工作中常用的五個常用功能點:
<b>1、 </b><b>用fiddler </b><b>抓http(s)</b><b>的包,儲存,回放。</b>
<b>2、 </b><b>使用fiddler</b><b>配置host</b>
<b>3、 </b><b>檢視每次請求的IP</b><b>。</b>
<b>4、 </b><b>使用fiddler</b><b>構造請求Post</b><b>包。</b>
<b>5、 </b><b>使用fiddler</b><b>的統計功能,觀察server</b><b>性能;</b>
<b>6、</b><b>使用fiddler中斷功能,進行調試跟蹤</b>
在介紹fiddler使用方法之前,我想先介紹一下fiddler原理,明白原理後,使用起來會更得心應手。
先介紹一下Fiddler界面布局介紹:
1、 抓包,儲存,回放
啟動fiddler,不需要對浏覽器做任何配置,自動開啟了抓包的功能,fiddler狀态欄
是開啟開關,值得一提的是fiddler做的比較人性化,啟動時候自動配置浏覽器的proxy項。在Tools-》WinNet Options這裡可以檢視,也可以在IE選項裡面檢視。fiddler在退出的時候自動關閉
另外我們一般情況下不需要看所有的http請求,需要過濾抓到的包:根據需要對url關鍵字或内容關鍵字進行過濾,這裡就需要使用filter配置了
儲存或記錄:選擇左側欄的session;然後File-》Save儲存,fiddler使用.saz檔案擴充名
回放:選擇file –》 load archive;點選工具欄replay,回放;
這個功能主要作用就是不需要每次配置hosts都到windows目錄下去修改hosts檔案;可以直接友善在fiddler界面裡面配置即可;友善快速的配置自己的測試host。
<b>3、 </b><b>檢視每次請求的server ip </b><b>和端口</b>
我們知道,每個域名會對應多個ip,我們一般不能直接看出這次請求是發到那台機器上去了,yng每次配置設定請求ip是dns輪詢的,有時候想要确定請求是發到哪個機器上。Fiddler支援腳本開發功能,擴充自定義菜單。這裡使用腳本加上顯示ip的功能。
修改完後,重新開機fiddler;抓包,選擇一條session,右鍵選擇Properties,這樣就會打開一個記事本,裡面有X-HOST訓示server的IP,如下圖:
如果覺得每次點選打開一個記事本比較麻煩,還可以把IP顯示在Session列裡面,按照下面步驟去配置
Step1 :打開菜單Rules-》customize Rules; 打開CustomRules.js;
Step2 :查找” var m_AlwaysFresh: boolean = false;”這一行;添加這段代碼
public static RulesOption("Show Server IP", "Per&formance")
var m_ShowServerIP: boolean = false;
如圖
step3:找到OnBeforeResponse函數,添加下面這段代碼
if (m_ShowServerIP){
oSession['ui-customcolumn'] += ' ' + oSession.m_hostIP;
}
如圖所示
Step4:配置完後,重新開機fiddler,打開Rules-》Performance-》show server IP;可以看到每個request的ip
<b>4、 </b><b>使用Fiddler</b><b>構造Http</b><b>請求Post</b><b>包。</b>
開發的時候有時候想測試Post的接口,但是無法使用浏覽器測試,因為浏覽器隻能輸入GET請求;是以經常需要自己寫一些代碼或使用firefox一些插件來完成post請求動作;現在有fiddler橫空出世,這一切都不再是問題。使用composer構造Post請求,點選execute發送請求,如下圖
<b>5、 </b><b>使用fiddler</b><b>統計功能,能統計資料量,按host</b><b>統計請求數,一個請求從連接配接到收發包,關閉各個階段的時間統計,這些資料對優化網站,分析性能非常有幫助;</b>
<b>6、 </b><b>使用fiddler</b><b>調試中斷功能</b>
這個功能可以在資料包發送之前,修改請求參數;在收到應答包,在js解析和浏覽器渲染之前,修改傳回結果。有了這個功能,開發者就可以修改不同參數測試server,同時也可以修改傳回包測試自己的js函數,或測試頁面渲染。使用者功能要用到fiddler的指令行。因為這個菜單裡面是中斷所有的請求
在querystring裡面修改請求參數, 如果要中斷應答 則使用 bpafter