全網最全fiddler使用教程和fiddler如何抓包

顧翔老師的《軟件測試技術實戰設計、工具及管理》網上購買地址:javascript

https://item.jd.com/34295655089.htmlcss

《基於Django的電子商務網站》網上購買地址:html

https://item.jd.com/12082665.htmljava

店鋪二維碼:android

來源:http://www.51testing.comweb


  1、前言面試

  抓包工具備不少,好比經常使用的抓包工具Httpwatch,通用的強大的抓包工具Wireshark.爲何使用fiddler?緣由以下:算法

  1.Wireshark是通用的抓包工具,可是比較龐大,對於只須要抓取http請求的應用來講,彷佛有些大材小用。chrome

  2.Httpwatch也是比較經常使用的http抓包工具,可是隻支持IE和firefox瀏覽器(其餘瀏覽器可能會有相應的插件),對於想要調試chrome瀏覽器的http請求,彷佛稍顯無力windows

  而Fiddler是一個使用本地127.0.0.1:8888的HTTP代理,任何可以設置HTTP代理爲127.0.0.1:8888的瀏覽器和應用程序均可以使用Fiddler。那麼想要精通抓包,首先必須對協議比較瞭解,因此下面咱們首先了解一下協議。

  2、HTTP協議

  一、HTTP協議

  支持客戶/服務器模式。簡單快速,無鏈接,無狀態。

  HTTP協議:默認端口:80

  HTTPS=HTTP協議+SSL安全傳輸協議:默認端口443

  二、HTTP協議請求詳解

  請求行,請求頭,空一行,請求正文

  Accept 指定客戶端可以接收的內容類型

  Accept-Charset 瀏覽器能夠接受的字符編碼集。

  Accept-Encoding 指定瀏覽器能夠支持的web服務器返回內容壓縮編碼類型。

  Accept-Language 瀏覽器可接受的語言

  Cookie HTTP請求發送時,會把保存在該請求域名下的全部cookie值一塊兒發送給web服務器。

  Content-Length 請求的內容長度

  Content-Type 請求的與實體對應的MIME信息

  Date 請求發送的日期和時間

  Host 指定請求的服務器的域名和端口號

  Referer 先前網頁的地址,當前請求網頁緊隨其後,即來路

  User-Agent 發出請求的用戶信息

  三、HTTP協議響應詳解

  響應行,響應頭,空一行,響應正文

  響應頭的信息和請求頭很相似,這裏不在累述!

  3、Fiddler簡介和工做原理

  1.Fiddler簡介

  Fiddler是位於客戶端和服務器端的HTTP代理。

  目前最經常使用的http抓包工具之一。功能很是強大,是web調試的利器。

  工做中經常使用場景:接口調試、接口測試、線上環境調試、判斷先後端Bug、mock測試、弱網測試。

  2.Fiddler下載和安裝

  Fiddler官網下載地址:https://www.telerik.com/fiddler

  Fiddle證書生成器下載地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

  Fiddler安裝注意事項:不要安裝在有中文和特殊字符的目錄

  安裝注意事項:不要安裝在有中文和特殊字符的目錄

  3.Fiddler的工做原理:

  Fiddler是以代理web服務器的形式工做的,它使用代理地址:127.0.0.1,端口:8888。當Fiddler退出的時候它會自動註銷,

  關掉Fiddler、谷歌和IE瀏覽器的代理服務器會自動取消。若是Fiddler非正常退出,由於Fiddler沒有自動註銷,會形成網頁沒法訪問。解決的辦法是從新啓動Fiddler。

  4、Fiddler六大塊詳解

  (1)Fiddler回話列表

  1.請求的ID編號、

  2.http響應狀態碼、

  3.會話使用的協議、

  4.請求發送到的服務器主機名、

  5.數據包在服務器中的路徑和文件、

  6.響應body的字節數。

  7.響應頭信息Cache-Control的值、

  八、響應頭信息Content-Type的值、

  9.發起請求的本地windows進程、

  10.註釋、

  11.自定義備註。

  (2)Fiddler功能頁籤

  Statistics頁籤:經過該頁籤,用戶能夠經過選擇多個會話來獲得這幾個會話的總的信息統計,好比多個請求傳輸的字節數。訪問頁面時選擇第一個請求和最後一個請求,可得到整個頁面加載所消耗的整體時間。從條形圖表中還能夠分別出哪些請求耗時最多,從而對頁面的訪問進行速度性能優化。

  inspectors頁籤:它提供headers、textview、hexview,Raw等多種方式查看一條http請求的請求和響應,它分爲上下兩部分:上部分爲請求展現,下部分爲響應展現。

  AutoResponse頁籤:它能夠抓取在線頁面保存到本地進行調試,大大減小了在線調試的困難,可讓咱們修改服務器端返回的數據,例如讓返回都是404的數據包讀取本地文件做爲返回內容。

  composer頁籤:支持手動構建和發送HTTP,HTTPS和FTP請求,咱們還能夠從回話列表中拖曳回話,把它放到composer選項卡中,當咱們點擊Execute按鈕時則把請求發送到服務器端。

  FiddlerScripts頁籤:打開Fiddler腳本編輯。

  log頁籤:打印日誌

  Filters頁籤:過濾器能夠對左側的數據流列表進行過濾,咱們能夠標記、修改或隱藏某些特徵的數據流。

  Timeline頁籤:時間軸,也稱爲Fiddler的瀑布圖,展現網絡請求時間的功能。每一個網絡請求都會經歷域名解析、創建鏈接、發送請求、接受數據等階段。把多個請求以時間做爲X軸,用圖表的形式展示出來,就造成了瀑布圖。在左側會話窗口點擊一個或多個回話,Timeline便會顯示指定內容從服務端傳輸到客戶端的時間。

  (3)菜單欄

  File菜單

  一、CaptureTraffic:能夠控制是否把Fiddler註冊爲系統代理。

  二、NewViewer:打開一個新的fiddler窗口

  三、LoadArchive:用於從新加載以前捕獲的以SAZ文件格式保存的數據包。

  四、Save:支持以多種方式把數據包保存到文件中。

  五、ImportSessions...:支持導入從其餘工具捕獲的數據包,也支持導入以其餘格式存儲的數據包。

  六、ExportSessions...:把Fiddler捕捉到的回話以多種文件格式保存。

  七、Exit:取消把Fiddler註冊爲系統代理,並關閉Fiddler。

  Edit菜單

  一、Copy:複製會話。

  二、Remove:刪除會話。

  三、SelectAll:選擇全部會話。

  四、Undelete:撤銷刪除會話。

  五、PasteasSession把剪貼板上的內容粘貼成一個或多個模擬的會話。

  六、Mark:選擇一種顏色標記選中會話。

  七、UnlockforEditing解鎖會話。

  八、FindSession...打開FindSession窗口,搜索捕獲到的數據包。

  Rules菜單

  一、HideImageRequest:隱藏圖片回話。

  二、HideCONNECTS:隱藏鏈接通道回話。

  三、AutomaticBreakpoints:自動在[請求前]或[響應後]設置斷點。IgnoreImage觸發器控制這些斷點是否做用於圖片請求。

  四、CustomizeRules...:打開Fiddler腳本編輯窗口。

  五、RequireProxyAuthentication:,要求客戶端安裝證書。該規則能夠用於測試HTTP客戶端,確保全部未提交Proxy-Authorization請求頭的請求會返回HTTP/407響應碼。

  六、ApplyGZIPEncoding:只要請求包含具備gzip標識的Accept-Encoding請求頭,就會對全部響應使用GZIPHTTP進行壓縮(圖片請求除外)。

  七、RemoveAllEncoding:刪除全部請求和響應的HTTP內容編碼和傳輸編碼

  八、Hide304s:隱藏響應爲HTTP/304NotModified狀態的全部回話。

  九、RequestJapaneseContent:選項會把全部請求的Accept-Encoding請求頭設置或替換爲ja標識,表示客戶端但願響應以日語形式發送。

  十、User-Agents:把全部請求的User-Agent請求頭設置或替換成指定值。

  十一、performance:模擬弱網測試速度。

  Tools菜單

  一、Options...:打開Fiddler選項窗口。

  二、WinINETOptions...打開IE的Internet屬性窗口

  三、ClearWinINETCache:清空IE和其餘應用中所使用的WinINET緩存中的全部文件。四、ClearWinINETCookies:清空IE和其餘應用中所發送的WinINETCookie

  五、TextWizard...:選項會啓動TextWizard窗口,對文本進行編碼和解碼。

  六、CompareSession:比較回話。

  七、ResetScript:重置Fiddler腳本。

  八、Sandbox:打開http://webdbg.com/sandbox/

  九、ViewIECache:打開IE緩存窗口。

  View菜單

  一、ShowToolbar:控制Fiddler工具欄是否可見

  二、DefaultLayout、StackedLayout、WideLayout三種界面佈局

  三、MinimizetoTray:最小化Fiddler到系統托盤(快捷鍵:CTRL+M)

  四、SquishSessionList:控制回話列表是否水平收縮。

  五、AutoScrollSessionlist:添加新的回話時,自動滾動到回話列表底部

  (4)工具欄詳解:

  1.備註功能

  2.從新發送請求,快捷鍵:R鍵。

  3.刪除請求

  4.當有請求前斷點時,點擊去發送請求。

  5.流模式。(默認是緩衝模式)

  6.解碼

  7.保持回話的數量。

  8.選擇你想要抓包或者監聽的程序

  9.查找

  10.保存全部會話,文件名以.saz爲擴展名

  11.截圖

  12.計時器

  13.快捷的打開IE瀏覽器

  14.清除IE緩存

  15.文本的編碼解碼工具

  16.分離面板

  17.MSDN查詢

  18.本機的信息

  (5)狀態欄詳解:

  一、顯示的Fiddler是否處於捕捉狀態(開啓/關閉狀態),能夠點擊該區域切換。

  二、顯示當前捕捉哪些進程。

  AllProcesses捕獲全部進程的請求

  WebBrowsers?捕獲Web瀏覽器的請求,應該特指IE

  Non-Browser?捕獲非Web瀏覽器的請求

  HideAll???隱藏全部請求

  三、顯示當前斷點設置狀態,經過鼠標點擊切換。有三種:

  不設置斷點

  全部請求在斷點處被暫停

  全部響應在斷點處被暫停

  4,顯示當前共捕獲了多少回話(如:300,表示共捕獲了300個會話,如:10/300,表示當前選擇10個會話,共捕獲300個會話)。

  5,第五區塊,描述當前狀態。

  若是是剛打開Fiddler,會顯示什麼時間加載了CustomRules.js;若是選擇了一個會話,會顯示該會話的URL;若是在命令行輸入一個命令,就會顯示命令相關信息。

  (6)Fiddler命令行能夠輸入命令操做回話列表,常見命令有:

  help????打開官方的使用頁面介紹,全部的命令都會列出來。

  cls?????清屏(Ctrl+x也能夠清屏)

  select??選擇全部相應類型的回話(如selectimage或select?css)。

  ?sometext查找字符串並高亮顯示查找到的會話。

  >size??選擇請求響應大小小於size字節的會話。

  =status/=method/@host查找狀態、方法、主機相對應的會話

  1uit????退出fiddler

  bpafter?xxx中斷URL包含指定字符的所有回話響應

  bps?xxx??中斷HTTP響應狀態爲指定字符的所有回話響應。

  bpv?xxx??中斷指定請求方式的所有回話響應

  bpm?xxx??中斷指定請求方式的所有回話響應。等同於bpv?xxx

  bpu?xxx:??與bpafter相似。

  5、Fiddler過濾器

  選擇Filters頁籤,勾選useFilters使用過濾器。

  Fiddler過濾指定域名

  1.第二個下拉框[-NoHostFilter-]選擇[ShowOnlyTheFollowingHosts]只顯示過濾的域名。

  2.如只監控百度,在下面的輸入框裏填上:www.baidu.com

  Fiddler過濾指定路徑

  1.勾選RequestHeaders中的[showonlyifURLcontains]。

  2.勾選RequestHeaders中的【ShowonlyifURLcontains】輸入正則:REGEX:(?insx).*\.?baidu.com/home.*

  只顯示路徑爲:baidu.com/Home?的數據包。

  Fiddler過濾指定文件格式

  1.勾選RequestHeaders中的【Hideifurlcontains】過濾項,

  2.在後面輸入:REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js)(\?.*)?$

  6、Fiddler對於WEB項目的抓包和改包項目實戰

  打開Fidder會自動抓包,若是想要改包的話則在AutoResponder頁籤,以下圖:若是你對此文有任何疑問,若是你也須要接口項目實戰,若是你對軟件測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入:軟件測試技術羣:695458161,羣裏的免費資料都是筆者十多年測試生涯的精華。還有同行大神一塊兒交流技術哦。

  7、Fiddler弱網測試

  Fiddler應用-弱網測試

  一、Rules->CustomizeRules打開Fiddle腳本編輯器(第二種也能夠點擊頁籤:FiddlerScript)。找到以下代碼:


if(m_SimulateModem){  //Delaysendsby300msperKBuploaded.???上行每發送1KB延遲300ms  oSession["request-trickle-delay"]="300";  //Delayreceivesby150msperKBdownloaded.?下行每接收1KB延遲150ms  oSession["response-trickle-delay"]="150";  }


  1kByte/s=8kbit/s(通常簡寫爲1kB/s=8kb/s)。

  上傳帶寬=(1*8/1000)/0.300≈0.027Mbps

  下載帶寬=(1*8/1000)/0.150≈0.053Mbps

  修改其中的300ms和150ms用於設置上行和下行的延遲速度。並重啓Fiddler使設置生效。

  好比你要模擬上傳速度100KBps的網絡,那上傳延遲就是1KB/100KBps=0.01s=10ms,就改爲10。

  網絡取值的算法就是1000/速度=須要delay的時間(毫秒),好比50kb/s須要delay200毫秒來接收數據。

  二、Rules->Performance->勾上SimulateModemSpeeds開啓模擬調制解調器速度。

  三、經過http://www.speedtest.cn/在線測試網速,看是否生效。訪問瀏覽器查看加載速度。

  8、Fiddler抓取https協議的數據報文和移動端抓包測試

  一、Fiddler設置:菜單欄中選擇tools->option,作以下兩個設置:

  2.Fiddler應用-抓取基於https協議的數據報文。

  一、清理環境(首次安裝Fiddler不須要清理)

  (1)卸載Fiddler軟件以及根證書生成器Fiddler2CertMaker。

  (2)清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA目錄下全部的RSA算法文件,此算法文件和非對稱公鑰密鑰加密相關。

  (3)清除電腦上的根證書,WIN+R快捷鍵,輸入:certmgr.msc,而後回車,查找fiddler證書,而後刪除。

  (4)清除瀏覽器上的證書文件,以谷歌瀏覽器爲例說明,在瀏覽器上輸入:chrome://settings/,進入[高級]->[管理證書],有"受信任的根證書頒發機構"列表。此處須要仔細查找帶有DO_NOT_TRUST_FiddlerRoot的字樣,並刪除。

  二、安裝並配置Fiddler抓取Https數據報文。

  (1)下載並安裝fiddler,官網下載地址:https://www.telerik.com/download/fiddler

  (2)下載並安裝Fiddler證書生成器,官網下載地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

  (3)打開Fiddler,點擊菜單欄中的Tools—>Options,選擇HTTPS頁籤。勾選DecryptHTTPSCONNECTs(解密https鏈接),Fiddler證書生成器會自動判斷本機是否安裝Fiddler證書,沒有則彈出以下證書安裝頁面。點擊」Yes」按鈕,在新彈出的窗口中再點擊」肯定」後則Fiddler證書安裝完成。接下來Fiddler就能夠抓取Https的數據報文。

  3.Fiddler應用-抓取基於https協議的手機報文。

  一、Fiddler抓取手機端的https協議數據報文。

  (1)保持android手機和電腦在同一網段。如鏈接同一無線。

  (2)打開android手機的「設置」->「WLAN」,找到你要鏈接的無線網絡並點擊,彈出網絡設置對話框,在「代理」處選擇「手動」,在「主機名」輸入框後面輸入127.0.0.1,在「端口」輸入框後面輸入8888,而後點擊「保存」按鈕。

  (3)啓動android設備中的瀏覽器訪問百度首頁或打開被測App,在fiddler中能夠看到抓取到的數據報文了。


————————————————————

顧老師課程歡迎報名


軟件安全測試

https://study.163.com/course/courseMain.htm?courseId=1209779852&share=2&shareId=480000002205486

接口自動化測試

https://study.163.com/course/courseMain.htm?courseId=1209794815&share=2&shareId=480000002205486

DevOps 和Jenkins之DevOps

https://study.163.com/course/courseMain.htm?courseId=1209817844&share=2&shareId=480000002205486

DevOps與Jenkins 2.0之Jenkins

https://study.163.com/course/courseMain.htm?courseId=1209819843&share=2&shareId=480000002205486

Selenium自動化測試

https://study.163.com/course/courseMain.htm?courseId=1209835807&share=2&shareId=480000002205486

性能測試第1季:性能測試基礎知識

https://study.163.com/course/courseMain.htm?courseId=1209852815&share=2&shareId=480000002205486

性能測試第2季:LoadRunner12使用

https://study.163.com/course/courseMain.htm?courseId=1209980013&share=2&shareId=480000002205486

性能測試第3季:JMeter工具使用

https://study.163.com/course/courseMain.htm?courseId=1209903814&share=2&shareId=480000002205486

性能測試第4季:監控與調優

https://study.163.com/course/courseMain.htm?courseId=1209959801&share=2&shareId=480000002205486

Django入門

https://study.163.com/course/courseMain.htm?courseId=1210020806&share=2&shareId=480000002205486

啄木鳥顧老師漫談軟件測試

https://study.163.com/course/courseMain.htm?courseId=1209958326&share=2&shareId=480000002205486


本文分享自微信公衆號 - 軟件測試培訓(iTestTrain)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索