1、原理web
Fiddler是http協議調試代理工具,它可以記錄客戶端和服務器之間的全部 HTTP請求,能夠針對特定的HTTP請求,分析請求數據、設置斷點、調試web應用、修改請求的數據,甚至能夠修改服務器返回的數據,功能很是強大。瀏覽器
原理:客戶端和服務器之間創建一個代理服務器,監聽客戶端發出的請求和服務器返回的響應結果服務器
2、Fiddler Windows使用cookie
2.1 Fiddler安裝配置網絡
(1)去官網http://www.telerik.com/fiddler或者其餘渠道下載安裝包,雙擊安裝程序,按照提示安裝便可。數據結構
(2)啓動Fiddler,打開菜單欄中的 Tools > Fiddler Options,打開「Fiddler Options」對話框。併發
(3)點擊切換到「Connections」選項卡,而後勾選「Allow romote computers to connect」後面的複選框,https選項卡中的capture https connects和decrypt https tracffic,而後點擊「OK」按鈕,重啓fiddler。app
(4)在本機命令行輸入:ipconfig,找到本機IP地址。編輯器
(5)https抓包請求設置:工具
手機和電腦鏈接同一個網絡(OPPO-TEST),打開手機瀏覽器,輸入http://ip:端口號,點擊前往:見下圖:
前往以後會跳轉到整數下載頁,點擊FiddlerRoot certificate下載證書。點擊下載以後,安裝證書並起個名字(隨意),點擊肯定
要求設置一個手機密碼,本身設置一個便可。
更改手機無線網的代理:手機系統設置-無線網-點擊高級,代理選擇手動,主機名是電腦的IP地址,端口號就是fiddler的端口號(8888),與瀏覽器訪問時的IP 端口號保持一直,點擊肯定便可。
六、操做手機,打開軟件商店,電腦Fiddler會顯示一些http請求信息,抓包成功。
2.2Fiddler抓包分析
1、面板展現
Session:
#號列中的圖標,每種圖標表明不一樣的響應類型,具體的類型包括:
統計/數據:
關於HTTP請求的性能和其餘數據分析:
咱們能夠從中看出一些基本性能數據:如DNS解析的時間消耗是8ms,創建TCP/IP鏈接的時間消耗是8ms等等信息。
2. Inspectors。
分爲上下兩個部分,上半部分是請求頭部分,下半部分是響應頭部分。對於每一部分,提供了多種不一樣格式查看每一個請求和響應的內容。JPG 格式使用 ImageView 就能夠看到圖片,HTML/JS/CSS 使用 TextView 能夠看到響應的內容。Raw標籤能夠查看原始的符合HTTP標準的請求和響應頭。Auth則能夠查看受權Proxy-Authorization 和 Authorization的相關信息。Cookies標籤能夠看到請求的cookie和響應的set-cookie頭信息。
3、Filter
Fiddler另外一個比較強大的功能。Fiddler提供了多維度的過濾規則,足以知足平常開發調試的需求。以下圖示:
經常使用過濾規則:
a.host和zone過濾。能夠過濾只顯示intranet或則internet的HTTP請求
也能夠選擇特定域名的HTTP請求
4.Timeline 請求響應時間
在左側會話窗口點擊一個或多個(同時按下 Ctrl 鍵),Timeline 便會顯示指定內容從服務端傳輸到客戶端的時間:
2.3 Fiddler刷接口
2.3.1 方法一 Replay
最簡單的刷接口方式
用fiddler抓包,抓取要刷的url請求,點選url,而後不斷輸入R(注意是大寫的),每輸入一次就請求一次這個接口,連續快速地點擊R就能夠達到刷接口的目的
這個R鍵也能夠用這個按鈕代替
2.3.2 方法二 shift+R
控制發出請求的次數
按照上面方法一的第一步,抓取url請求;點選url,而後點擊shift+r (注意此次是小寫r,做用等於點擊replay按鈕),此時會彈出詢問窗口,在窗口中能夠輸入請求的次數:
如上圖所示,點擊OK以後,就會再發送5條請求;
2.3.3 方法三 Break+GO
設置斷點攔截請求,再併發訪問接口
先設置斷點,按如下路徑設置:Rules->Automatic Breakpoints->Before Requests,完成設置後,fiddler會把全部的請求所有攔截住,不會發給接口服務器;
在客戶端作相應操做,fiddler能夠看到抓包結果,可是會攔截住請求;而後按照方法一的第二步操做,選中url以後,不斷輸入R,能夠看到fiddler攔截了不少請求(也能夠按照方法二,控制請求數量);
而後去掉斷點Rules->Automatic Breakpoints->disabled,點擊Go鍵,把攔截住的請求所有釋放,就能夠達到併發訪問接口的目的。
2.4 Fiddler篡改數據
2.4.1 before requests
Before requests,也就是發送請求以後,可是fiddler代理中轉以前,這時能夠修改請求的數據。
場景舉例:商店rank榜單有分頁處理,想測試不一樣的size和start參數產生的影響
1.打開工具欄rules→automatic breakpoints →before requests
2.選中所要修改的url的參數,修改參數的值,執行
修改後:
點擊run to completion執行:
2.4.2 after responses
After responses ,也就是服務器響應以後,可是在fiddler將響應中轉給客戶端以前,這時能夠修改響應的結果。
場景舉例:軟件榜榜單,某個應用的返回名稱想讓他顯示異常
1.打開工具欄rules→automatic breakpoints →after responses
2.選中所要修改的url的參數,修改參數的值,執行
修改內容以下:
瀏覽器中展現修改後的效果:
注意點:after responses是直接請求響應後阻斷,不足在於一次修改只能使用一次,修改須要時間,對於app有設置超時頁面容易出現還沒改完app就已經超時了。
2.4.3 映射到本地文件
先將response響應修改後保存到本地,使用AutoResponder來自動響應,彌補了after responses方法的缺點。
a)修改接口數據:執行一次這個接口(經過app發請求或者Fiddler的Composer功能),選中要修改的接口,在菜單欄中選擇Edit》Unlock for Editing,以後接口的響應就會變成可編輯狀態這時就能夠編輯了
b)保存修改後的接口響應到本地。
c )設置自動響應本地文件。在AutoResponder中Add Rule,設置須要自動響應的接口,和響應的內容,這裏響應到本地的文件(即上一個步驟保存的文件),注意選擇底部的Find a file會打開個窗口,直接選擇上一步驟的文件便可。
d )完成以上步驟就能夠實現自動響應修改後的內容了,能夠先Relay下這個接口的響應驗證是否生效,確認生效後再到app查看是否有樣式等問題.
注意點:必定要在fiddler編輯器可編輯狀態下篡改response數據再保存,不要先保存response再到本地去修改,會破壞數據結構,致使出現篡改不成功。
2.5 Fiddler模擬慢網速
菜單—>Rules—>Customize Rules 打開腳本,搜索「request-trickle-delay」
request-trickle-delay表明每KB的數據被上傳時會被延時多少毫秒,response-trickle-delay則對應下載時每KB的數據會被延時多少毫秒
二、 菜單—>Rules—>Performances—>Simulate Modem Speeds勾選後以上設置纔會生效。