目錄
一、Fiddler基礎介紹?
二、Fiddler的作用
三、Fiddler安裝?
四、Fiddler界面功能介紹?
1、界面介紹?
1)、菜單欄介紹?
2)、工具欄介紹
3)、會話欄介紹?
五、Fiddler抓取https數據?(面試題)
六、Fiddler過濾數據
Filters(過濾器)
Hosts(主機過濾)
Client Process(客戶端進程)?
Request Headers(請求頭)?
Breakpoints(斷點)
Response Status Code(響應狀態碼)?
Response Type and Size(響應類型和大小)?
Response Headers(響應頭)?
八、Fiddler單個/多個/所有刪除
九、Fiddler抓包之接口基礎概述
?1、Fiddler實現前后端BUG定位思路
十、HTTP協議請求響應報文詳解
1、Inspectros檢查器選項卡
十一、Fiddler模擬弱網測試?
十二、Fiddler模擬mock數據?
十三、Fidder篡改數據?
十四、APP測試
1、Fiddler手機APP抓包?
步驟1:配置Fiddler?
步驟2:如要抓取https數據手機需要下載證書?
步驟3:為手機配置代理?
一、Fiddler基礎介紹?
? ? ? ? Fiddler是一個http協議調式代理工具,它能夠記錄并檢查所有你的電腦和互聯網之前的通訊,設置斷點,查看所有“進出”Fiddler的數據(指cookie、html、js、css等文件)?
二、Fiddler的作用
? ? 1、通過抓包工具截取觀察網站請求信息,更深入了解網站
?? ?2、觀察請求與返回的信息,幫助我們定位前后端bug
?? ?3、通過抓包工具攔截請求數據,進行修改信息。繞過前端界面限制
?? ?4、通過抓包偶矩模擬接口請求數據
三、Fiddler安裝?
步驟1:官網下載Fiddler地址:?Download Fiddler Web Debugging Tool for Free by Telerik
步驟2:勾選協議,默認安裝即可 ,頁面展示,它會問你用?Fiddler
?做什么?然后再填寫你的郵箱,選上?Country/Territory,勾選上?I agree
?以及?I accept
,再點擊?Download For Windows
?
步驟3:下面就是傻瓜式安裝,若不懂得可參考底部博主安裝詳細教程。
步驟4:雙擊?Fiddler.exe
?運行即可,會彈出窗口,關閉Cencel即可。
四、Fiddler界面功能介紹?
1、界面介紹?
1)、菜單欄介紹?
- File:主要導入導出session,打開窗口,保持會話等等
- Edit:復制移除session
- Rules:用于創建規則規則過濾會話。列如可以隱藏圖片類型的請求,或者304的請求之類
- Tools:主要是工具,可以options中設置Fiddler的端口號、Https的請求、connection等。也可以清楚cache
- View:主要用于Fiddler窗口顯示的問題,例如可以設置ToolBar是否顯示等
2)、工具欄介紹
:說明備注
:重新請求
:刪除會話
:繼續執行;調式bug,斷點攔截請求
:流模式/緩沖模式(默認是緩沖模式)
:解碼
:保存會話
:監控指定進程
:尋找會話
:可以對捕獲到的會話進行保存,保存后只需要把保存的 saz 文件打開即可
:保存截圖功能,5 秒之后幫我們把截圖保存下來?
:計時器,左鍵單擊一下開始,再單擊一下停止,右鍵清零
:打開瀏覽器,下拉可進行選擇你需要打開某個瀏覽器
:清楚IE緩存,按住 ctrl 鍵點擊可以清除已經存在的 cookies
:編碼格式轉換(當瀏覽器的某些路徑被編碼后,利用這個工具可以得到相應解碼后的路徑,別的文本信息也可以,編碼/解碼工具)
:窗口分離,會話列表單獨一個窗口,請求和響應單獨一個窗口
:可以進行搜索功能,原版的話平時幾乎不會用到該功能
:fiddler 的在線幫助網站
:鼠標懸停顯示本機的一些 ip 信息?
:用來關閉工具欄的按鈕,在 View 中Show Toolbar可以打開工具欄
3)、會話欄介紹?
會話欄表頭介紹?
- #:序號
- Result:HTTP 響應的狀態
- Protocol:協議類型(HTTP/HTTPS)?
- Host:請求地址的域名
- URL:訪問網址,請求服務器路徑和文件名,包括GET參數
- Body:請求的大小,以byte為單位
- Caching:請求的緩存過期時間或者緩存控制
- Content-Type:請求響應的類型
- Process:發出此請求的window進程以及進程ID
- Comments:用戶通過腳本或者右鍵菜單給此session增加的備注
- Custom:用戶可以通過腳本設置的自定義?
?會話列表中圖標解析:
五、Fiddler抓取https數據?(面試題)
1、首次安裝fiddler,打開fiddler
菜單項“Tools”——>“Options...”?,在彈出的Options窗口中,點擊選項卡“HTTPS”;
2、在Options窗口HTTPS選項卡,依次勾選“ Decrypt HTTPS traffic”、lgnore server certificate errors(unsafe):?是一個安全設置,它允許瀏覽器在訪問網站時忽略服務器SSL/TLS證書錯誤。
3、在Options窗口HTTPS選項卡,依次點“Actions”——>“Trust Root Cerificate”:
將證書下載到本地桌面,設置之后就能抓取到https請求了
4、可查看證書,依次點擊“Actions”——>“Open Windows Cerificate Manager”,進入證書管理器頁面,點擊 “操作” 菜單,選擇 “查找證書” ,在包含輸入框中輸入要查找Fiddler的相關證書。
?
六、Fiddler過濾數據
每次都能抓到很多請求,瀏覽器上面有別的窗口實時發送請求,fiddler都能抓到所有請求。
如果只想抓取自己想要的數據怎么辦?過濾:其他不用的數據過濾
使用的最多的地方。
只捕獲指定的hosts,多個域名用;隔開。例如:www.baidu.com;*jd.com
下面還有很多進程過濾,請求頭信息過濾,斷點過濾,響應代碼過濾,響應類型和數據大小,配置過濾,響應頭過濾等等,這些是不常用的,了解一下即可。
還有個是比較過濾是比較常用的,就是過濾圖片,js,css等這些。在Hide if URL contains中加入下面一行過濾圖片代碼。如果地址里面包含了,需要的內容隱藏
正則:可以從百度搜索過濾圖片js,css等,比如:REGEX:(css|ico|jpg|png|gif|bmp|wav|js|jpeg)
REGEX:(?insx)/[^?/]*.(css|ico|jpg|png|gif|bmp|wav|js|jpeg)(?.*)?$
-
Filters(過濾器)
?在Fiddler中,Filters(過濾器)選項卡提供了非常方便地將簡單的過濾規則應用到正在捕捉的數據流上的方法。在 Filters 選項卡上面的所有操作 FiddlerScript 可以模擬(通常更準確或強大),但是對于簡單的任務,Filters 選項一般就足夠滿足過濾需求。如下圖:
①選中Filter選項卡左上方的 “Use Filters” 復選框后,就可以使用Filters給出的過濾器對流量進行過濾。選中 Use Filters 復選框后,對于選定的會話,可以對該會話進行如下過濾操作:
- 是否隱藏顯示
- 是否在Web會話列表中添加標識
- 是否設置斷點用于人工調式
- 是否阻斷發送
- 是否自動修改其數據頭?
Fiddler 還會為隱藏的會話提供代理功能,即使在 Web 會話列表中沒有顯示這些會話。
②Actions按鈕支持當前選中的過濾器進為過濾集,加載之前保存的過濾集,并對之前捕捉到的數據流應用當前過濾規則,如下圖。
?
-
Hosts(主機過濾)
Hosts框提供根據主機名過濾的功能,如下圖:
?
Hosts過濾支持:
- 按區域進行過濾(No Zone Filter)
- 如果選擇只顯示局域網會話(?Show only Interanet Hosts),Fiddler將只會抓內網的接口。
- 如果選擇只顯示互聯網的會話(Show only Internet Hosts),Fiddler 將只會抓外網的接口。
?
- 按主機進行過濾(No Host Filter)
- 如果選擇隱藏一下主機(Hide the following Hosts),Fiddler 將隱藏 Hosts 輸入框輸入的主機。
- 如果選擇只顯示以下主機(Show only the following Hosts),Fiddler 將僅僅顯示 Hosts 輸入框輸入的主機。
- 如果選擇標記以下主機(Flag the following Hosts),Fiddler 將在 Web 會話列表中加粗顯示 Hosts 輸入框中輸入主機的所有會話。
注意:?
? ? ? ? 1)、修改過濾器后,需要執行?“Actions”中的“Run Filterset now”按鈕,使修改后的過濾器配置立即生效。
? ? ? ? 2)、Hosts文本框不會自動通過通配符去配子域名。如果你設置了 “Show only the following Hosts” 并且在列表中只有jd.com,那么將無法看到www.jd.com 網站下的數據流。為了查看jd.com域名下所有的數據流,需要手動添加通配符*。例如:*.jd.com。
? ? ? ? 在通配符方式下就可以包含如xxx.jd.com和xxx.jd.com這樣的網站。如果你想查看根目錄jd.com下的數據流,可以把通配符改成*jd.com的形式——這樣就可以包含所有域名以jd.com結束的數據流,前面不需要加點。如果有多個host,可以使用分號分隔。
-
Client Process(客戶端進程)?
進程過濾器用于控制Fiddler顯示哪個進程的數據流。應用程序只有和Fiddler運行相同的主機時,Fiddler才能判斷出是哪個進程發出的哪個請求。如下圖:
?
- ?Hide traffic from Service Host 選項會隱藏來自進程 svchost.exe的數據流,svchost.exe 進程是個系統進程,會同步 RSS Feeds 以及執行其他后臺網絡活動。
-
Show only Internet Explorer 選項只顯示進程名稱以 IE 開頭或請求的 User-Agent 頭包含 compatible; MSIE 的數據流。
- Show only traffic from 選項只顯示選中進程下的數據流(注意:下拉列表中包含了系統中當前正在運行的所有進程)。如下圖:
??
-
Request Headers(請求頭)?
可通過下面這些選項,添加或刪除HTTP請求頭,也可以標識包含某些請求頭的請求。如下圖:?
① Show only if url contains????選項框支持基于 URL 顯示某些請求,僅僅顯示我們感興趣的請求。可使用前綴 EXACT 來限定大小寫敏感,例如如下:
1、EXACT:jd.com/q=字符串
2、正則表達式REGEX:(?insx).*\.(gif|png|jpg)$? # 只顯示圖片請求
② Hide if URL contains ? 需要隱藏內容,例如如下:
正則表達式:REGEX:(css|ico|jpg|png|gif|bmp|wav|js|jpeg)
標準如下:
REGEX:(?insx)/[^?/]*.(css|ico|jpg|png|gif|bmp|wav|js|jpeg)(?.*)?$
③?Flag requests with header????選項支持指定某個HTTP請求頭名稱,如果在 Web 會話列表中存在該請求頭,會加粗顯示該會話。
④??Delete request header????選項支持指定某個 HTTP 請求頭名稱,如果包含該請求頭,會刪除該請求頭。
⑤??Set request header????選項支持創建一個指定了名稱和取值的 HTTP 請求頭,或將 HTTP 請求頭更新為指定取值。
-
Breakpoints(斷點)
斷點選項框支持對包含給定屬性的請求或響應設置斷點。如下圖:?
?
- Break request on POST????選項會為所有 POST 請求設置斷點。
-
Break request on GET with query string????選項會為所有方法為 GET 且 URL 中包含了查詢串的請求設置斷點。
-
Break on XMLHttpRequest????選項會對所有能夠確定是通過 XMLHttpRequest 對象發送的請求設置斷點。由于從數據流上無法判斷該請求是否通過 XMLHttpRequest 對象發送,因此該功能是通過查找請求頭是否為 X-Requested-With(由jQuery 框架添加)實現的。它還會檢查請求頭是否為 X-Download-Initiator,在 IE10 及更高的版本中可以配置在請求頭中包含 X-Download-Initiator。
-
Break response on Content-Type????選項會為所有響應頭 Content-Type 中包含了指定文本的響應設置響應斷點。
-
Response Status Code(響應狀態碼)?
通過這些選項,可以基于響應狀態碼過濾會話,如下圖:
?
- Hide success(2xx)? ? 選項會隱藏狀態碼在 200 到 299 之間( 包含 200 和 299)的響應。這些狀態碼用來表示請求成功。
-
Hide non-2xx? ?選項會隱藏狀態碼不在 200 到 299 之間的響應。
-
Hide Authentication demands(401,407)? ?選項會隱藏狀態碼為 401 和 407 的響應,隱藏身份驗證要求,這些響應需要用戶進一步確認證書。
-
Hide redirects(300,301,302,303,307)? ? 選項會隱藏對請求進行重定向的響應。
-
Hide Not Modified(304)????選項會隱藏條件狀態請求中狀態碼為 304 的響應,表示客戶端緩存的實體是有效的。
-
Response Type and Size(響應類型和大小)?
通過這些選項,可以控制在Web會話列表中顯示哪些類型的響應,并阻塞符合某些條件的響應。如圖:?
類型下拉框如下圖:
列表中:?
-
Show all Content-Types????顯示所有的響應,不過濾
-
Show only IMAGE/*????只顯示圖片類型的響應
-
Show only HTML????只顯示HTML文檔響應
-
Show only TEXT/CSS????只顯示CSS層疊樣式表響應
-
Show only SCRIPTS????只顯示腳本類型響應
-
Show only XML????只顯示XML類型響應
-
Show only JSON????只顯示JSON類型的響應
-
Hide IMAGE/*????隱藏圖片類型的響應
其他選項框:
- ?Hide smaller than????選項隱藏響應體小于指定的字節數的響應。
-
Hide larger than????選項隱藏響應體大于指定字節數的響應。
-
Time HeatMap????復選框會基于服務器返回給定響應所需要的時間為每個會話設置背景顏色。不超過 50 毫秒的響應會以綠色顯示;50 毫秒到 300 毫秒之間的響應不著色;300 毫秒到 500 毫秒之間的響應以黃色顯示;超出 500 毫秒的響應以紅色顯示。
-
Block scriptfile????勾選該選項卡,如果返回的響應頭指定的 Content-Type 為腳本,則返回 HTTP/404 響應。
-
Block imagefile? ? 勾選該選項卡,如果返回的響應頭指定的 Content-Type 為圖像,返回 404 響應。
-
Block SWF file? ? 勾選該選項卡,如果返回的響應頭指定的 Content-Type 為 Adobe Flash (application/x-shockwave-flash),返回404響應。
-
Block CSS file? ? 勾選該選項卡,如果返回的響應頭指定的 Content-Type 為 CSS,返回 404 響應。
-
Response Headers(響應頭)?
通過這些選項,可以添加或刪除HTT響應頭,或者為包含特定響應頭 的響應添加標識。如下圖:
?
- ?Flag responses that set cookies????選項會以粗體顯示所有響應頭包含 Set-Cookie 的響應。
-
Flag responses with header????選項支持指定 HTTP 響應頭名稱,如果響應中該 HTTP 頭存在,該會話在 Web 會話列表中會以粗體顯示。
-
Delete response header????選項支持指定 HTTP 響應頭名稱,如果存在該響應頭名稱,會從響應頭中刪去。
-
Set response header????選項支持創建或更新 HTTP 響應頭,你可以自定義設置取值。
八、Fiddler單個/多個/所有刪除
?:刪除會話?
單個刪除:選中任意一個會話按delete可直接刪除
多個刪除:按住shift+delete即可
刪除所有:點擊?選中Remove all清空所有數據
九、Fiddler抓包之接口基礎概述
了解接口基礎內容,①接口的基本概念,②接口標準
- ?接口的基本概念
項目包含前端、后端、接口
前端:前端是肉眼所見到的界面
后端:處理數據,數據邏輯的
接口:提供前后端數據交互的一個通道
- 接口標準
網絡協議://IP地址:port/url=頁面路徑?參數
網絡協議:http/https
ip地址:39.167.900.145/www.baidu.com 一個IP地址可以對應多個域名
端口號:80/443
路徑:登錄login/注冊register
參數:user=nihao&pwd=123456
請求方式
響應結果
所以,如果我們抓到了一個接口我們需要重點關注:接口地址,接口參數,請求方式,響應內容。
?1、Fiddler實現前后端BUG定位思路
十、HTTP協議請求響應報文詳解
1、Inspectros檢查器選項卡
請求報文信息按鍵說明:
- Headders : 發送請求頭信息。重點要關注 Entity——>Content-Type參數類型,這個參數類型規定了我們發送的參數要求以這個類型發送,還有就是cookie、session
- Text View:參數的文本信息
- Syntax View:參數的文本信息加強版
- Web Forms:顯示請求的 GET?和 POST?body內容。特別說明:這里 body 應該是 application/x-www-form-urlen-coded 格式
- Hex View:用十六進制數據顯示請求
- Auth:顯示 header 中的 Proxy-Authorization 和 Authorization 信息
- Cookies:請求發送 cookies 信息
- Raw:將整個請求顯示為純文本。可查看接口地址,接口參數,請求方式
- JSON:如果請求的 body 是 Json 格式,就是用分級的 Json 來顯示它
- XML:如果請求的 body 是 XML 格式,就是用分級的 XML 樹來顯示它
響應報文信息按鍵說明:?
- Transformer:顯示響應的編碼信息
- Headers:用分級視圖顯示響應的header
- Text View:使用文本顯示相應的body
- Syntax View:是Text View的加強版,查看語法高亮的響應內容
- Image View:如果請求是圖片資源,顯示響應的圖片
- Hex View:用十六進制數據顯示響應
- Web View:響應在Web瀏覽器中的預覽效果
- Auth:顯示響應?header 中的 Proxy-Authorization 和 Authorization 信息
- Caching:顯示此請求的緩存信息
- Cookies:顯示此請求的 cookies 信息,私密 P3P Header 信息
- Raw:將整個請求顯示為純文本。響應數據 和 接口文檔一致
- JSON:如果請求的 body 是 Json 格式,就是用分級的 Json 來顯示它
- XML:如果請求的 body 是 XML 格式,就是用分級的 XML 樹來顯示它
十一、Fiddler模擬弱網測試?
日常進地鐵、上公交、進電梯等,如果app沒有對各種網絡異常進行兼容處理那么用戶可能在日常生活中遇到APP閃退、ANR、數據丟失等問題。
網絡設置:
Rules——>Performances——>Simulate Modem Speeds:模擬調制解調器的速度(打開了Simulate Modem Speeds 網絡的速度就會變慢)
想要自己設置網絡,可以更改網絡速度
Rules——>Custmize Rules(快捷鍵Ctrl+R)打開Fidder ScriptEditor
接著 Ctrl+F 查找 m_SimulateModem 標志位
默認上傳300毫秒,下載150毫秒,這里我們自己進行更改網絡速度
更改后,繼續??Rules——>Performances——>Simulate Modem Speeds 選擇速度,必須要勾選。
十二、Fiddler模擬mock數據?
mock測試就是在測試過程中,對于某些不容易構造或者不容易獲取的對象,用一個虛擬的對象來創建以便測試的測試方法。mock就是創建假數據,在創建假數據之前可以備份一份真數據再進行創建假數據。
保存真數據步驟:選中一行數據右鍵Save—>Response—>Response Body 保存響應數據
比如:我現在有個登錄下單支付的一個流程要測試,現在開發沒寫完登錄的接口,我沒法進行后面的測試。這個時候就可以用mock去進行測試。使用fidder模擬登錄成功的接口。
首先選擇Auto Responder——>勾選Enable rules
- 創建一個文本寫入你需要的數據。
- 在選擇一個接口,添加你的數據
- save進行保存
十三、Fidder篡改數據?
- ?打開fiddler之后
- 對獲取的請求進行挑選,選擇對自己想要的那一條
- 添加斷點:在fiddler下方的命令窗口,bpu URL(URL:加上你的接口地址),回車,添加該請求前斷點成功
- 點擊工具欄中
重新發送請求,點擊下方出現的請求(還未返回),對webforms中的值進行修改,如下圖:
- 點擊運行 Run to Comple 后,出現返回JSON
- 去除斷點:命令窗口:bpu 空格 回車
十四、APP測試
1、Fiddler手機APP抓包?
-
步驟1:配置Fiddler?
點擊打開“Tools”->“Options”->“Connections”選項,勾選“Allow remote computers to connect”允許遠程計算機連接到 Fiddler。如下圖:
-
步驟2:如要抓取https數據手機需要下載證書?
?使用收集瀏覽器訪問 Fiddler 服務,根據上圖可知,Fiddler 的端口為 8888(訪問地址為 Fiddler 所屬主機的 IP 地址加 Fiddler 端口)比如:192.168.1.3:8888。如下圖:
點擊“FiddlerRoot certificate”鏈接按鈕,下載 Fiddler 的根證書。如下圖:?
打開瀏覽器的下載管理器,點擊剛剛下載的 Fiddler 證書,安裝證書。將該證書命名為 Fiddler。如下圖:
證書安裝完成后,可以在系統設置中搜索“憑據”,打開“信任的憑據”,找到剛剛安裝的 Fiddler 證書。Fiddler 證書信息如下圖:
-
步驟3:為手機配置代理?
?前面已經成功安裝了 Fiddler 證書,下面將對手機進行代理配置。打開手機的設置,找到“WLAN”選項,如下圖:
選擇當前正在使用的 WIFI(注意:安裝 Fiddler 的電腦必須和手機處于同一局域網,兩者能夠互通),點擊查看 WIFI 的詳細信息。如下圖:?
點擊 WIFI 的代理,選擇“手動”,然后設置代理的 IP 和端口。其中,IP 地址為 Fiddler 所在機器的 IP 地址,端口在 Fiddler 中配置的 8888,如下圖:??
到這里手機配置代理就完成了,可以進行手機抓取app了。?
給大家提供比較詳細的Fiddler以及網站。
?這個網站很好用,關于前端,后端,工具等等都有教程可參考:?
人人編程網 - 讓編碼更簡單
?可參考下面博主很詳細:
Fiddler 的使用(詳細教程)_fiddler使用教程-CSDN博客