『言善信』Fiddler工具 — 5、Fiddler介面佈局詳解【會話列表】

繁華似錦Fighting發表於2021-06-09

1、會話列表說明

Fiddler抓取到的每條HTTP請求(每一條稱為一個session)。

主要包含了請求的ID編號、狀態碼、協議、主機名、URL、內容型別、body大小、程式資訊、自定義備註等資訊。

如下圖所示:

image

說明:

名稱 含義
# 抓取HTTP Request的順序ID,從1開始,按照頁面載入請求的順序遞增。
Result HTTP響應的狀態碼。
Protocol 請求使用的協議,如HTTP/HTTPS/FTP等。
Host 請求地址的主機名或域名。
URL 請求資源的位置(包括伺服器路徑和檔名,也包括GET引數)。
Body 該請求的大小,以byte為單位。
Caching 請求的快取過期時間或者快取控制,header等值。
Content-Type 請求響應的型別(Content-Type)。
Process 發出此請求的Windows程式及程式ID。
Comments 允許使用者為此回話通過指令碼或者右鍵選單給此session增加的備註。
Custom 允許使用者通過指令碼設定自定義值。

2、會話列表不同顏色的含義

不同圖示和不同顏色的含義,如下圖:

image

預設顏色的含義如下:

image

3、會話列表圖示說明

image

4、會話列表應用設定

(1)給Fiddler會話列表增加IP列

Fiddler在抓取每個session時,都會呼叫CustomRules.js指令碼檔案,該指令碼可以隱藏,標識或任意修改session的顯示資訊。

會話列表增加IP列步驟:

步驟1:

執行Fiddler,Rules選單 —> Customize Rules,開啟“Fiddler ScriptEditor”

image

步驟2:

Ctrl+F查詢“static function Main()”字串,然後新增以下程式碼:

FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");

image

ctrl+s進行儲存。

步驟3:檢視

image

提示:指令碼在執行狀態下就可以修改並重新編譯,不需要重新啟動Fiddler。

(2)新增自定義列

在標題頭上右鍵會出現一個列表如下:

image

說明:

  • Search this column...:在當前列中搜尋內容。
  • Flag duplicates :標記重複項。
  • Hide this column :隱藏此列。
  • Ensure all columns are visible :確保所有列均可見。
  • Customize columns...:自定義列。

選擇Customize columns...:自定義列。

會出現如下介面,我們可以根據實際需要進行相應列的設定。

image

(3)新增完成請求時間

有時候我們想測試系統頁面的效能(抓取請求時看響應時間),都是通過點選請求一個個去看,這樣會比較麻煩,我們可以在會話列表中增加時間,看起來更直觀一點,當然也更方便了。

方法:

Rules選單 —> Custome Rules,搜尋class Handlers

加在class Handlers裡面新增,如下程式碼:

//左側資訊會顯示時間
public static BindUIColumn("TimeTaken/ms", 120)
function TimeTaken(oS: Session):String{
    var sResult = "0";
    //獲得時間戳的ms值
    var t1_ms = oS.Timers.ClientBeginResponse.ToUniversalTime().Millisecond;
    //獲得時間戳的minute值
    var t1_m = oS.Timers.ClientBeginResponse.ToUniversalTime().Minute;
    //獲得時間戳的second值
    var t1_s = oS.Timers.ClientBeginResponse.ToUniversalTime().Second;
    var t1 = t1_m*60*1000 + t1_s*1000 + t1_ms ;

    var t2_ms = oS.Timers.ClientDoneRequest.ToUniversalTime().Millisecond;
    var t2_m = oS.Timers.ClientDoneRequest.ToUniversalTime().Minute;
    var t2_s = oS.Timers.ClientDoneRequest.ToUniversalTime().Second;
    var t2 = t2_m*60*1000 + t2_s*1000 + t2_ms ;

    if(t1 >= t2){
        var t3 =  t1 - t2;
        sResult = t3.toString();
    }
    return sResult;
}

儲存資料後,會話列表頁就可以顯示時間了。

image

(4)其他操作

  • 點選標題頭可以按屬性值進行升序或者降序排序,預設是按ID排序。
  • 也可以點中標題頭進行拖拽,自定義標題頭的順序。

參考:

相關文章