Hi all :
近期我較細化的學習了Fiddler的一些使用方法,在此梳理和總結出一份文檔,希望能對大家有些許幫助。
請大家重點看第二部分的主要功能介紹,第三部分由於工具欄下目錄太多,我寫的有點亂,需要大家自己慢慢動手嘗試一下。
一. 背景
在近兩個月的群問問版本測試中,測試的重點在於功能,但大家在測試過程中,經常由於對相關代碼和數據返回的不了解,處於被動的狀態。
近期我較細致的學習Fiddler,梳理一份文檔,希望能對大家有點幫助。代碼的梳理也在進行中,后續也會整理出來。
二. Fiddler的使用界面和各模塊主要功能介紹:
以下來介紹圖中所標的功能:
- 請求列表:請求列表中包含了許多信息,從左至右依次為,#(序列號),Result(結果狀態碼),Prottocol(請求的協議),Host(請求的主機名),URL(具體鏈接),Body(請求的內容大小),Caching(緩存),Content-Type(響應的HTTP內容類型),Process(請求所運行的程序),Comments(注釋),Custom(不知,好像也無用)
- 監聽開關:在最左下角,顯示capturing代表捕捉狀態,此時fiddler工作。鼠標點擊一次后,Fiddler就休息。這個小功能可以方便測試人員在線上與測試環境之間來回切換。
- 監聽類型:有四種狀態,分別是,監聽所有請求,監聽瀏覽器請求,監聽非瀏覽器請求,和全部隱藏。比較實用的功能。
- 命令行:這個功能有點類似於linux的指令,在里面輸入一些指令,有時會很方便。比如輸入 “cls”,即是清屏功能,類似於Ctrl + X。此外,另一個較常用的功能是bpu,可以阻止訪問相關的網站,比如bpu www.sogou.com 即可防止當前用戶訪問搜索搜索主頁。這個功能一般是在設置斷點時使用,我覺得挺有趣的,各位可以嘗試一下。
- 請求相關信息:上圖的右邊部分,是數據流的相關信息,在這里可以用許多形式查看數據流。此處的tab很多,以下依次介紹:
Statistics(統計):
可以在左側的請求列表中,選中一條或者多條請求,(按ctrl+鼠標左擊,可選多條),在此tab下就會統計出累積的信息,包括發送的字節,接收的字節,請求開始的時間,響應碼等,具體的信息可以手動嘗試看一下,會明白很多。最下角有一個”show Chart”的Button,點擊后會有選中的請求所消耗的資源信息,此圖的作用,可以看出選中的請求中,各部分的內容所占的比例,大體上分析出哪一種類型的數據占比較多,從而可以對頁面的訪問進行訪問速度的優化。
如下為statistics展示圖:
Inspectors(檢查器):
Inspector下包含許多查看數據流的方式,此tab中上半部分是發送的數據流,下半部分是響應的數據流。Inspector tab下有許多查看request和response的tab,這里重點介紹兩種,headers 和 raw。headers中可以查看消息中的header,raw中可以查看完整的消息。一次只能檢查一個請求。
AutoResponder(匹配規則):
這一部分是進入測試環境的關鍵,其實挺簡單,即,如果要訪問的URL滿足前面中的一條正則匹配,則將此URL以后面的規則重新改寫,以此進入所希望的環境。
設置這一部分的方式有兩種,一種是手動一條一條的加入,另一種是以.farx的文件將匹配信息保存,再導入,具體的規則文件形式,參見以前給大家發過的fiddler.farx或者fiddler修改2.farx。注意特殊字符<>的轉義即可。
Composer(不知應該翻譯成什么):
在QQ群的項目中,這個功能相對雞肋。它是用來創建和發送HTTP請求的。但在QQ群項目中,一般是直接進行一行為操作,然后根據fiddler記錄下的請求來分析數據,因此極少會有自建request的必要。但是我覺得還是挺有趣的一個功能,用來自我學習,是個非常好的工具。
Filter(過濾):
一般情況下,我們訪問一個網址,可能包含各種類型的數據,比如說.gif,當我們不需要查看這些信息時,可以打開此tab,將.gif的請求過濾。這個功能還是很實用的。
FiddlerScript:
這是一個謎一樣的功能,在這里可以更改fiddler的許多屬性,比如一般的JS請求是以綠色顯示,你可以更改這里的script腳本,以藍色顯示。挺有趣也挺復雜的。
TextWizard:
無意中發現Fiddler有這么一個功能,可以進行編碼的轉換,非常的方便。其位置在工具欄的下方,請求相關信息欄的上方處。特別好用的功能。
三. Fiddler工具欄介紹
fiddler共有的工具欄有六個一級目錄,分別是:
File,Edit,Rules,Tools,View,Help。
1.File
capture traffic : 捕獲功能的啟用與關閉,同左下角的監聽開關
Load Archive : 從本地導入Session壓縮包
Save :保存,下屬子目錄包括保存全部session,指定session,當前選定request或response的session等,按需選擇。
Properties : 當前選定的Session的相關屬性,包括狀態,大小 ,客戶端相關信息,各環節請求時間等。
Exit: 退出Fiddler
2.Edit
Copy : 復制。這是使用較多的一個功能,在群問問中有時有數據問題,用此功能最合適,包括五個子功能
Session: 復制整個Session。
Just Url : 復制URL,然后可在瀏覽器中自行請求,查看數據,最常用。
Headers Only : 復制Session的頭信息
Full Summary : 復制Session的摘要
Terse Summary : 復制Session的部分摘要。
Remove : 移除,其下的子功能包括移除選中session,移除未選中session,移除所有session。
Select All : 選中所有的請求信息,一般進行統計分析時使用。
Mark : 將選中的請求信息標注顏色,方便自己觀察和記錄。
Find Sessions : 類似於文本編輯器中 Ctrl + F,查找功能,查找字段時使用。
3.Rules
Hide Image Request : 隱藏圖片請求,很實用。
Hide HTTPS CONNECTs : 過濾HTTPS連接
Automatic Breakpoints : 設置斷點。
Customize Rules : 自定義規則。
Require Proxy Authentication : 翻譯過來就是“需要代理驗證”,然而沒有使用過。
Apply GZIP Encoding : 使用 GZIP 編碼,測試中暫時沒有使用過。
Remove All Encoding : 移除所有編碼
Hide 304s : 過濾所有的304請求。
User-Agents : 選擇Web 客戶端代理的類型,如CHROME等
Performance : 性能。包括最常用的禁用緩存等。
4.Tools
Fiddler Options : Fiddler的一些配置
Text Encode/Decode : 文本編碼和解碼。
還有一些其它的功能,不知為何物,但是使用的也不是很多。
5.View
Squish Session List :收縮/展開 Session 列表,
Stacked Layout :切換面板布局
Statistics :Statistics 頁簽
Inspector :Inspector 頁簽
Builder :Request Builder 頁簽
Minimize to Tray :縮小為任務欄圖標
Stay on Top :保持在其他窗口前端
AutoScroll Session List :自動滾動 Session 列表
Refresh :刷新,快捷鍵 F5
6.Help:
即一些Fiddler的幫助信息,包括在線幫助,檢查更新,社區在線討論的鏈接等。