通過上一篇文章Fiddler移動端抓包,我們知道了Fiddler抓包原理以及怎樣進行移動端抓包,接下來介紹Fiddler中常用的功能。
Fiddler中常用的功能如下:
- 停止抓包
- 清空會話窗內容
- 過濾請求
- 解碼
- 設置斷點
一. 停止抓包
二. 清空會話窗
方法一,工具欄工具:
方法二,命令行形式:
當然,命令行工具也還支持其他命令的輸入,這里不做過多說明。
三. 過濾請求
打開Fiddler抓包時,會話窗口會顯示很多的請求,但我們只需要抓取到目標請求數據,這時就可以設置過濾。
過濾可以分為兩種方式:只顯示目標請求,只抓取目標端的請求。區別在於,前者是抓取所有請求但只顯示目標請求數目,后者是只抓取某個端的請求數據。
只顯示目標請求
操作步驟如下:
如界面右側下方所示,還可以勾選更多的條件進行過濾展示,這里不做過多說明,有興趣的可以自行嘗試。
只抓取目標端的請求
例如,我們只想對移動端抓包時,我們可以設置只抓取移動端的請求,進行如下設置:
四. 解碼
在抓取某些請求的時候,會發現返回的內容中出現了亂碼,如下圖所示
這是HTML被壓縮了的原因, 我們可以通過一下兩種方式去解壓縮。
方法一,點擊Responsebody is encoded.Click to decode.
,如下:
方法二,先選中工具欄中的Decode
,再請求抓包,這樣顯示的請求結果便是解碼后的結果。如下:
解碼后結果如下圖所示:
五. 設置斷點
有時進行調試時,我們需要偽造客戶端請求和服務器響應,那么這個時候就需要設置斷點。
偽造客戶端請求
偽造客戶端請求,即在客戶端點擊請求后、正式向服務器發送請求之前,修改原來的請求參數再發送請求,這需要設置斷點為Before Requests
,步驟說明如下:
-
通過菜單選項或快捷鍵F11進行設置,如下圖步驟,點擊選擇
Before Requests
經過第一步的設置,我們再次去抓包,會發現在左側會話窗口中,所有請求都標記成了中斷,請求未發送成功而是被Fiddler中斷了,且此時客戶端可以看到數據加載異常。
會話窗口中找到對應的請求,點擊選擇,右側選擇
Inspectors
,會顯示一行操作欄,點擊Run to Completion
便可繼續發送被中斷的請求。但我們的目的是斷點后修改請求數據再發送請求。
-
找到對應的請求,修改請求數據
以登錄Testerhome為例,先將設置斷點為
Before Requests
,在瀏覽器中輸入正確的賬號和密碼,點擊登錄,然后在Fiddler中找到該請求,將密碼清空,再點擊Run to Completion
繼續發送請求,服務器會返回什么樣的結果,下面我們來驗證。可以看到,瀏覽器輸入正確的賬號密碼應該是要登錄成功的,但我們通過Fiddler打斷點后,對該登錄接口的請求參數做了修改之后再請求,返回錯誤:賬號或密碼錯誤,請重試。
偽造服務器響應
偽造服務器響應,即在響應返回給客戶端之前,將響應內容修改再返回,這需要設置斷點為After Responses
。接下來還是以TestHome網站登錄接口為例,修改它的響應內容。步驟如下:
-
先將斷點規則設置為
After Responses
,如下: -
正常登錄后會跳轉至TesterHome網站首頁,但此時我們可以修改返回參數,讓其登錄后跳轉至百度頁面,設置如下:
如上圖所示,將圖中返回參數改成百度地址 (TextView形式下可對返回參數進行修改),再點擊
Run to Completion
,我們會看到登錄成功后跳轉到了百度頁面,而不是TestHome首頁。
注意事項
設置斷點的功能應有如下注意:
-
Inspectors
中,在請求參數顯示窗口WebForms
中可以修改請求參數,在響應參數顯示窗口TextView
中可以修改返回參數。 -
通過菜單選項或快捷鍵F11進行斷點設置,是全局有效的,即會對所有的HTTP請求都打上斷點
-
如果只需要對某個服務器發出的請求設置斷點,可使用Fiddler的命令行工具輸入命令,
Before Requests
命令為bpu 服務器地址
,After Response
命令為bpafter 服務器地址
,如下圖所示: -
設置斷點后,需要取消斷點設置,需要將斷點設置成
Disabled
,操作如下: -
也可使用快捷工具進行斷點設置,如下圖所示位置,點擊切換即可:
六. 總結
Fiddler除了以上介紹的功能外,還有其他功能,如:
-
限制網速,用於模擬弱網測試
-
簡單的接口測試
-
mock
-
結合第三方插件實現更多功能