FIDDLER的使用方法及技巧總結

1、FIDDLER快速入門及使用場景

Fiddler的官方網站:http://www.fiddler2.comweb

Fiddler的官方幫助:http://docs.telerik.com/fiddler/knowledgebase/quickexec正則表達式

Fiddler官方網站提供了大量的幫助文檔和視頻教程, 這是學習Fiddler的最好資料。json

 

一、Fiddler基本概念及工做原理

Fiddler是最強大最好用的Web調試工具之一,它能記錄全部客戶端和服務器的http和https請求,容許你監視,設置斷點,甚至修改輸入輸出數據,Fiddler包含了一個強大的基於事件腳本的子系統,而且能使用.net語言進行擴展後端

你對HTTP 協議越瞭解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能幫助你瞭解HTTP協議。Fiddler不管對開發人員或者測試人員來講,都是很是有用的工具。服務器

 

Fiddler 是以代理web服務器的形式工做的,它使用代理地址:127.0.0.1,端口:8888。當Fiddler退出的時候它會自動註銷,這樣就不會影響別的 程序。網絡

不過若是Fiddler非正常退出,這時候由於Fiddler沒有自動註銷,會形成網頁沒法訪問。解決的辦法是從新啓動下Fiddler。session

 

二、Fiddler使用場景

①適用場景app

開發環境的host配置;ide

先後端接口調試;工具

線上bugfix;

性能分析和優化;

 

②不支持的功能

調試非網絡協議的數據流;

------支持HTTP、HTTPS、FTP數據流及相關協議

------沒法檢測或修改其餘協議的數據:如SMTP、POP三、Telnet、IRC等

處理超大請求和響應;

------超過2GB的請求,fiddler沒法處理

------超過2GB的響應,fiddler的處理能力有限

------保存大量的sessions會話也會致使性能急劇降低

 

2、FIDDLER用戶界面

FIDDLER用戶的幾面主要包括下面幾個部分,如圖所示:首先FIDDLER窗口的最左邊是web session列表,窗口的最上方是main menu主菜單,而後下面的是toolbar工具欄,窗口最下方的黑的框是quickexec命令行,最下方的欄是status bar狀態欄,右邊是view選項視圖。總體大概就是醬紫。

一、Web Session 列表

列表上主要包含下面的幾個部分

包含部分以下:

注:標藍色區域的內容爲平時較經常使用的部分

 

每一個記錄不一樣圖標和不一樣顏色的含義以下:

顏色的含義以下:

 

 

部分圖標的含義以下:

 

列表上對應快捷鍵的使用:

※注:標藍色區域的內容爲平時較經常使用的部分

右鍵後的上下文菜單列表:

 

二、Main Menu 主菜單

菜單欄能夠啓動全部FIDDLER的功能

三、Toolbar工具欄

工具欄的話主要是提供了常見的命令和設置的快捷方式

 

四、Status Bar 狀態欄

狀態欄由一組面板組成,顯示一些fiddler的配置信息

 

 

五、QuickExec命令行

命令行對話框提供了常見操做的快捷方式:包括選擇命令和script命令

六、View 選項卡

 

 

 

 

第一步:先把請求輸入到框內,注意前面的類型是get仍是post

第二步:執行:execute

第三步:在web sessions裏能夠查到剛發的請求

※注:這個方法能夠模擬重複發不少請求的功能,在測一些接口返回請求頻繁的功能時會用到

菜單選項的功能以下

 

時間選項卡上的圖形的含義以下:

The abbreviated URL at the left of each Transfer Bar is green if the request was a Conditional Request, or Black if the request was unconditional. The full URL is shown in the status bar on hover.

The start of the transfer bar is drawn at the time (Timers.ClientBeginRequest) when the client sends the request to Fiddler.

The end of the transfer bar is drawn at the time (Timers.ClientDoneResponse) when the response to the client is completed.

The color of the bar is determined by the MIME type of the response; light-green for images, dark-green for JavaScript, purple for CSS, and blue otherwise.

If the bar is "hatched" rather than smooth, this indicates that the HTTP response was buffered by Fiddler. For more information, see the "What is streaming?" section below.

The vertical line indicates the time to first byte of the server's response (Timers.ServerBeginResponse).

The green circle before the bar shows that a connection was reused; a red circle means that the connection was newly created.

The top circle represents the client's connection to Fiddler; the bottom circle represents Fiddler's connection to the server.

A red X after the bar indicates that the server sent a Connection: close header (or failed to send a Keep-Alive header for a HTTP/1.0 response), preventing subsequent reuse of the connection.

The gray arrow icon indicates that the server's response was a redirect (302). The red ! icon indicates that the server returned an error code (4xx, 5xx).

下面是請求的模式:

Streaming mode ensures that HTTP responses are not buffered by Fiddler. Buffering alters the waterfall diagram, as you can see below, where none of the images begin to download until their containing page completes. Learn more...

 

3、FIDDLER使用技巧及方法

一、AutoResponder選項卡的使用

Fiddler的AutoResponder 選項卡容許你使用本地硬盤的文件來做爲返回內容,而不是把請求發往服務器。

建立AutoResponder 規則:使用AutoResponder選項卡,你能夠建立一個匹配規則和一個響應字符串,若是請求的URL地址跟你的匹配規則相匹配,Fiddler就會自動執行這個對應的響應字符串。

 

①匹配規則

一、純粹字符串匹配

Fiddler將會按照不區分字母大小寫來匹配字符串。

Demo以下:

二、前綴NOT匹配

跟上面的相似,Fiddler還有一個非字符串匹配的規則:NOT:該規則會匹配url中不含給定字符的全部請求

Demo以下:

三、前綴EXACT匹配

表達式以EXACT:爲前綴,此匹配區分字母大小寫

四、前綴REGEX匹配

正則表達式:Fiddler支持以regex:爲前綴的正則表達式語法,

使用.+匹配一個或多個字符,

使用.*匹配0個或多個字符,

使用^匹配字符串開始位置,

使用$匹配字符串結尾位置。

Demo以下:

※注:選項字符串(?insx)的功能以下:它會啓動大小寫敏感限制,要求顯示捕獲組,支持單行語義,支持使用#符號添加註釋

②設置響應字符串

一些返回的actiontext以下

※注:標藍色區域的內容爲平時較經常使用的部分

 

還有個方法是在返回設置新建個規則,

 

而後在text’文本處編寫想要返回的json便可

寫好規則後,也能夠右鍵規則進行修改:

延遲相應的方法以下

在一個請求返回來以前你能夠設置一下請求延遲返回的時間。選中Enable Latency 複選框,能夠設置全部的規則的延遲。

右鍵單擊一個或者多個規則,而後選擇 Set Latency 就能夠設置具體的延遲時間。若是你想調整現存的延遲時間,只須要輸入一個帶有+或者-號的數字便可。

若是你想在如今的延遲時間基礎上面減小500毫秒,那麼在彈出的輸入框中輸入-500便可。

 

二、BreakPoint 斷點設置

設置斷點能夠在使程序在斷點處中止,能夠查看程序的狀態,修改數據流,以改變程序的行爲

下面是在fiddler中設置斷點的位置

首先能夠在quicktext命令行輸入斷點,這樣在web sessions以前或以後的sessions會被中斷

或者是在AutoResponder中設置斷點,這樣在後續遇到這樣的請求就會被中斷

Sessions執行過程當中設置斷點的位置:

1)從客戶端讀到請求後,在請求發給服務器以前

2)在服務器發回響應後,在響應回傳給客戶端前

以1)爲例:設置斷點後,sessions請求會被中斷,session顯示中斷的圖標,點擊這個session

出現下面的內容

在view選項卡選擇webform後,能夠看到請求的參數,這時候參數能夠進行修改

修改參數後下方有三個選項:

①Break On Response

這個選項能夠繼續在返回客戶端前面加斷點

②Run to Completiopn

這個能夠按照這個更改參數後繼續提交請求

③Choose response…

這個能夠展出上下文菜單,裏面有各類返回的HTTP請求,能夠選擇特定的請求返回,也能夠按照本身自定義的特定文件來返回

 

三、Compare比較兩個sessions

有時候兩個請求比較類似,想找出區別,能夠下載插件winziff,下載地址是

http://www.grigsoft.com/download-windiff.htm

下載之後,放到tools- fiddler option tool文件夾下,

 

設置好路徑後就可使用了

 

使用方法是勾選兩個sesisons,而後右鍵,點擊compare,而後出警告框之後直接運行就能夠。

從上面紅色和藍色的內容就能夠看出請求中發送的和收到的參數及返回值是不同的

 

4、FIDDLER通用規則更改

To make custom changes to web requests and responses, use FiddlerScript to add rules to Fiddler's OnBeforeRequest or OnBeforeResponse function. Which function is appropriate depends on the objects your code uses: OnBeforeRequest is called before each request, and OnBeforeResponse is called before each response. Note:

1)It is not possible to access the response objects inside OnBeforeRequest as they have not yet been created.

2)It is possible to use objects from the request inside OnBeforeResponse; however, any changes you make to those objects will not be seen by the server, as it has already received the request.

 (to be continue...)

相關文章
相關標籤/搜索