公號:軟測小生(ruancexiaosheng)
對于Fiddler上面的每個按鈕的功能的話,其實只要鼠標停留在按鈕上面就會出現英文描述的功能,今天在來實際動手過一遍所有的功能,并記錄一下。
第一個小氣泡:增加備注,點擊氣泡即可對下面捕捉到的會話增加備注(一般很少使用)
Replay回放按鈕:比較常用,捕捉到一個會話之后想回放這個會話,就可以點這個按鈕。
remove按鈕:清空監控面板,下面還附有很多remove規則,可以按照你的需要選擇相應的remove內容,比如Remove all 清除所有; Images是清除所有圖片請求等等。
go按鈕:用于斷點調試Debug,類似于Eclipse調試代碼的F6,下圖紅圈中的位置
1、點擊一下會出現一個藍色向上的箭頭,此時的意思是截獲發送request的時會有一個斷點,可以點擊go按鈕繼續往下走
2、再點擊一下會出現一個向下的綠色箭頭,此時的意思是截獲request返回時會有一個斷點
Stream按鈕:fiddler代理模式流模式與緩沖模式之間切換,默認是緩沖模式,按下即為流模式。
緩沖模式:當一個HTTP請求的所有內容全部返回給Fiddler時候才在界面展示出來;
流模式:Fiddler實時展示返回的內容
Decode按鈕:解壓請求,將HTTP返回的內容全部解壓出來,方便查看。
Keep sessions: 保持sessions會話,默認為保持全部,按照你需求的大小,電腦內存的大小選擇保持多少會話,畢竟越多約占用電腦資源。
靶心Any Process: 過濾請求,可以指定只抓取某個也面或者瀏覽器的請求,操作方式:按住靶心按鈕,出現十字狀,按住鼠標拖動到目標瀏覽器界面,可看到瀏覽器界面變成黑色,方開鼠標后按鈕處會出現你只捕獲的目標進程編號。
Find 查找功能:在眾多會話中查找你需要的信息,上面有一些輔助條件,比如選擇高亮顏色之類的。
Save 保存按鈕:將所有的請求保存到saz文件下,可以再次打開使用。
照相機:保存截圖
Browes: 快速啟動瀏覽器按鈕,下拉菜單里面有各種本機裝有的瀏覽器,比如IE,Chrome,Firefox等
Clear Cache:清除瀏覽器緩存
TextWizard: 編碼/解碼問本內容,比如URL關鍵字解碼/編碼,Base64/JS String之類的解碼,編碼
Tearoff: 分離面板,將左邊的會話面板與右邊的面板分離,浮窗,取消分離的話是直接關閉分離出來的面板即可
控制臺:可以在其中輸入命令行,比如輸入help,就會在瀏覽器中打開常用的命令
Capturing:控制Fiddler是否在工作,顯示Capturing表示工作,空白表示不截取任何請求。
Web Browsers:過濾瀏覽器會話。其右邊的數字是當前展示的所有會話數量。
控制面板使用:
Statistics: 一個會話的數據統計信息,顯示一些性能指標(時間),可以為優化提供依據
RTT:請求往返時間,是衡量請求性能的重要指標,還有一個全世界范圍內的平均數據
show chart:數據可視化處理
Inspectors: 對請求進行解包,可以查看相應的請求和響應信息
AutoResponder: 文件代理,可以把請求的資源用本地文件代理掉,方便調試線上bug文件,具體如下: 線上bug定位Hotfix bug:(只指定某一個連接文件到指定的IP或者服務器)。
比如:發現線上某個文件出現bug時,現在要將此文件映射到本地環境(或者是非線上開發測試環境),做代碼的修改之后快速的查看效果是否與預期一致,是否生效,是否能修復bug。
1、將請求拖入到AutoResponder中,可以看到最下方有一個EXAT,叫精準匹配(也支持正則表達式模糊匹配);
2、在下方可以選擇本地(非線上測試開發環境)文件路徑來進行測試查看結果,當然也可以選擇其他的一些響應,比如200,500等狀態。
Composer: 前后端接口連調,可以用來偽造請求--需要后端接口:修改里面的數據參數,偽造請求,再訪問查看效果。
**Log: **記錄日志
Timeline:網站性能分析
HOST配置志向非線上環境進行開發測試:(將所有的文件映射到指定的IP或者服務器下面)
Tools-->Hosts,勾上enable,然后再下方配置一個目標IP地址+host域名(可用的),save,再來發送請求Replay的時候會指向新配置的IP地址,即可查看效果。
查看結果之后要關閉代理功能有兩種方式1、取消之前的enable,save;2、直接退出Fiddler,不用去更改電腦system中的host文件。
Fiddler不顯示ServerIP:
1、點擊菜單Rules-->Customize Rules 2、在CustomRules.js文件里Ctrl+F查找字符串“static function Main()”
添加一行代碼即可顯示ServerIP即可:
[plain] view plaincopy
<embed id="ZeroClipboardMovie_1" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">
- FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
Fiddler打開截獲HTTPS請求后無法訪問網頁:
1、現在大多數網站都使用了HTTPS,那么如何截獲呢?fiddler-->Tools-->OPTIONS,-->HTTPS,勾選上Decrypt HTTPS traffic即可;
2、但是發現這樣就不能正常打開網頁,是因為代理端口設置為了8888,在Options-->Connections中可以查看,只要將其修改為8080即可;
3、很多時候會提示這個端口被java占用:打開cmd,輸入 taskkill /F /IM即可kill掉占用的進程,如與其它占用,響應找到占用并關閉即可。
Fiddler請求模擬,前后端接口調試(前端頁面沒有完成的情況下)
請求的偽造:可以偽造Cookie,進行登錄
前后端連調:Composer -> 選擇請求方式 GET -> copy 地址 參數-> excuete
然后查看返回數據參數。
POST參數一般要放到RequestBody中
Fiddler網絡限速
開發在測試網站在網速比較差的情況下的一個性能情況,基于Fiddler script插件。
小栗子:
點擊fiddlerScript 在代碼里找到onBeforeRequest,加入下面代碼:
Static function OnBeforeRequest
[csharp] view plaincopy
<embed id="ZeroClipboardMovie_2" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">
- oSession["request-trickle-delay"]="3000";//請求階段延遲3秒
- oSession["response-trickle-delay"]="3000";//響應階段延遲3秒
Fiddler代碼格式化插件
官網下載插件
JavaScript Formatter 代碼格式化插件
Fiddler Add-ons 插件:javaScript formatter -> js文件右擊 -> 選擇 make javascript pretty -> textview / syntaxview 代碼全部高亮顯示
traffic differ (對比兩個不同的對話): 直接拖進兩個不同的請求,會顯示完整的對比數據 -> 可以用來對比優化前后網站之間的不同
第三方插件:比如 willow -> 快速管理host列表 完全可視化 http代理插件
可視化限速
因為沒有開源,可以到http://pan.baidu.com/s/1mgocpBi進行下載體驗