FIDDLER的使用方法及技巧總結


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

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

Fiddler的官方幫助:http://docs.telerik.com/fiddler/knowledgebase/quickexec

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

 

1、Fiddler基本概念及工作原理

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

你對HTTP 協議越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能幫助你了解HTTP協議。Fiddler無論對開發人員或者測試人員來說,都是非常有用的工具。

 

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

不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動注銷,會造成網頁無法訪問。解決的辦法是重新啟動下Fiddler。

 

2、Fiddler使用場景

①適用場景

開發環境的host配置;

前后端接口調試;

線上bugfix;

性能分析和優化;

 

②不支持的功能

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

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

------無法檢測或修改其他協議的數據:如SMTP、POP3、Telnet、IRC等

處理超大請求和響應;

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

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

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

 

二、FIDDLER用戶界面

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

1、Web Session 列表

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

包含部分如下:

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

 

每個記錄不同圖標和不同顏色的含義如下:

顏色的含義如下:

 

 

部分圖標的含義如下:

 

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

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

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

 

2、Main Menu 主菜單

菜單欄可以啟動所有FIDDLER的功能

3、Toolbar工具欄

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

 

4、Status Bar 狀態欄

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

 

 

5、QuickExec命令行

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

6、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...

 

三、FIDDLER使用技巧及方法

1、AutoResponder選項卡的使用

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

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

 

①匹配規則

1、純粹字符串匹配

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

Demo如下:

2、前綴NOT匹配

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

Demo如下:

3、前綴EXACT匹配

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

4、前綴REGEX匹配

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

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

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

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

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

Demo如下:

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

②設置響應字符串

一些返回的actiontext如下

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

 

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

 

然后在text’文本處編寫想要返回的json即可

寫好規則后,也可以右鍵規則進行修改:

延遲相應的方法如下

在一個請求返回來之前你可以設置一下請求延遲返回的時間。選中Enable Latency 復選框,可以設置所有的規則的延遲。

右鍵單擊一個或者多個規則,然后選擇 Set Latency 就可以設置具體的延遲時間。如果你想調整現存的延遲時間,只需要輸入一個帶有+或者-號的數字即可。

如果你想在現在的延遲時間基礎上面減少500毫秒,那么在彈出的輸入框中輸入-500即可。

 

2、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請求,可以選擇特定的請求返回,也可以按照自己自定義的特定文件來返回

 

3、Compare比較兩個sessions

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

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

下載以后,放到tools- fiddler option tool文件夾下,

 

設置好路徑后就可以使用了

 

使用方法是勾選兩個sesisons,然后右鍵,點擊compare,然后出警告框以后直接運行就可以。

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

 

四、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...)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM