原理
Fiddler是一個http協議調試代理工具,它能夠記錄並檢查所有你的電腦和互聯網之間的http通訊,設置斷點,查看所有的“進出”Fiddler的數據(cookie,html,js,css等)。

fiddler下載、安裝
下載
地址:www.telerik.com/fiddler

安裝




啟動

啟動后的界面,包含:工具欄、請求列表、命令行、請求詳情、響應詳情

fiddler基礎配置

默認監聽端口為8888
勾選Allow remote computers to connect,表示允許遠程連接(別的機器把HTTP/HTTPS請求發送到Fiddler上來)

fiddler默認只抓取http協議的請求,要抓取https協議的請求,需要做如下配置:
選中"Decrpt HTTPS traffic",fiddler就可以抓取https請求
首次勾選,會彈出兩個對話框,是否信任fiddler證書和安全提示

否信任fiddler證書,點擊【Yes】

安全提示,點擊【是】


配置完成后,重啟fiddler
fidller抓包默認用IE,IE不用做配置
打開fiddler,再打開IE的設置,可以看到,安裝完fiddler后,默認也將IE的代理設置好了



關閉fiddler,代理自動被關閉

常用功能
清除左側請求列表

過濾
方式一:

方式二:
隱藏或者顯示配置的hosts

多個hosts之間用分號分割

顯示內網、外網,這個用得少

web端抓包(http&https)
web端抓取http
設置過濾,只顯示url中包含localhost的請求

啟動本地tomcat服務,瀏覽器訪問:http://localhost:8580/

雙擊下面這個請求

右側上方顯示請求詳情,下方顯示響應詳情

web端抓取https
設置過濾

瀏覽器訪問:https://www.baidu.com/


部分圖標含義


清除圖片


雙擊上面第一個請求


app端抓包(http&https)
以ios舉例
完成fiddler的基礎配置(見本篇第二節)
app端抓取http
手機和電腦在同一局域網
查看電腦ip

手機設置代理


設置過濾

手機訪問電腦上的tomcat,電腦ip:8580,即:192.168.0.102:8580

app端抓取https
打開瀏覽器,輸入電腦ip:8888,即:192.168.0.102:8888

點擊上面的FiddlerRoot certificate超鏈接,下載證書

手機上安裝證書

設置--通用--關於本機--證書信任設置,開啟fiddler證書的信任

手機訪問百度
模擬弱網低速
模擬低速網絡情況下頁面、APP的顯示與交互情況,比如響應時間過長時是否有彈出網絡不好的提示、頁面crash以及顯示錯亂、session是否一致等

搜索:m_SimulateModem
默認,發送每KB延時300ms,接收每KB延時150ms

可以都設置為30000毫秒
變成黃色

ctrl+s保存后,變為綠色

開啟限速

一直轉圈

下面圖標表示正在從服務器下載響應

測試結束后取消限速
請求數據篡改
Fiddler中設置斷點修改Request
設置斷點可以修改httpRequest的任何信息(包括host、cookie、表單中的數據)。
設置斷點有兩種方法:
第一種:打開Fiddler,點擊Rules -> Automatic Breakpoint -> Before Requests(這種方法會中斷所有的會話),取消方式:點擊Rules -> Automatic Breakpoint -> Disabled
第二種: 在命令行中輸入命令: bpu www.baidu.com (這種方法只會中斷www.baidu.com),取消方式:在命令行中輸入命令 bpu
舉例:
瀏覽器訪問jenkins:http://ip:8580/jenkins/login
打開Fiddler,點擊Rules -> Automatic Breakpoint -> Before Requests

輸入賬號密碼(密碼是錯誤的密碼),點擊登錄

fiddler能中斷這次會話,雙擊被中斷的會話

點擊Inspectors tab下的WebForms

修改密碼為test1234,然后點擊Run to Completion

然后就能登錄成功

Fiddler中設置斷點修改Response
第一種:打開Fiddler,點擊Rules -> Automatic Breakpoint -> After Response (這種方法會中斷所有的會話),取消:點擊Rules-> Automatic Breakpoint -> Disabled
第二種: 在命令行中輸入命令: bpuafter www.baidu.com (這種方法只會中斷www.baidu.com),取消:在命令行中輸入命令 bpuafter。
先設置fiddler,打開fiddler,點擊Rules -> Automatic Breakpoint -> After Response
瀏覽器訪問:http://ip:8580/jenkins/login

修改響應內容,添加如下內容


頁面返回

但是這樣容易造成請求超時,可以用AutoResponder。
AutoResponder替換源資源
目的:請求百度首頁,返回https://www.cnblogs.com/UncleYong/
將左側的請求拖動到右側





此時,瀏覽器訪問百度首頁,會重定向到:

不使用該規則,取消勾選

或者移除

mock
fiddler_mock.txt
{"code":"0", "message":"success", "content":{"user":"uncleyong","url":"https://www.cnblogs.com/UncleYong/"}}


訪問百度首頁

另外,還可以用正則匹配

前綴為“EXACT:”表示完全匹配(大小寫敏感)
無前綴表示基本搜索,表示搜索到字符串就匹配
前綴為“NOT:”表示發現就不匹配
前綴為“REGEX:”表示使用正則表達式匹配
fiddler模擬http請求
無參


get有參

post
略
另外,可以將左側請求行中需要的請求拖拽至請求構造欄中,修改相應參數,執行調試接口
聲明:部分圖片來源於網絡,如有侵權,請聯系刪除
