您當前的位置:首頁 > 動漫

測試必會+面試必問--fiddler引數詳解

作者:由 測試菜鳥 發表于 動漫時間:2022-02-15

公眾號‘自動化測試研習社’,歡迎關注交流。

Fidder抓包是作為測試必須掌握的一項技能。

上一篇文章介紹了Fiddler的環境搭建和原理分析。

這篇詳細介紹(保姆級)Fiddler在測試中常用的功能。

全文較長(6000字),建議先收藏,需要時再食用。

目錄:

一、介面簡介

1。選單欄

2。工具欄

3。會話列表面板

4。會話詳情面板

5。命令列

二、Filters功能詳解

1。Hosts(常用)

2。Clients Process

3。Request Headers(常用)

4。Breakpoints

5。**Response Status Code**

6。**Response Type and Size**

**7。Response Header**

三、Inspectors檢查器功能詳解

1。請求報文

2。響應報文

3。應用場景

四、AutoResponder功能詳解

1。設定規則

2。匹配規則

3。測試中的應用場景

五、**Composer功能詳解**

1。Parsed方式

2。Raw方式

3。應用場景

六、斷點功能詳解

1。透過選單欄斷點

2。透過命令列斷點

3。應用場景

一、介面簡介

先看一下完整的Fiddler介面佈局

測試必會+面試必問--fiddler引數詳解

Fiddler介面主要包含四部分:選單欄、工具欄、會話列表、會話詳情

1.選單欄

File:用於開啟新的Fiddler會話、匯入/匯出session、儲存會話等

Edit:用於複製/貼上session、host、url、header;刪除session;查詢session(find sessions)等

Rules:根據規則對會話進行過濾,比如‘Hide Image Request’隱藏影象請求,也可以自定義規則

Tools:工具,可以在options中設定Fiddler埠號,設定獲取https請求等,也可以清除快取、cookie等。

View:用於設定是否顯示選單欄、介面佈局等

2.工具欄

在選單欄View中可以設定是否顯示工具欄。

工具欄主要是一些常用的操作按鈕。

測試必會+面試必問--fiddler引數詳解

透過stream可以切換兩種模式

快取模式:Fiddler直到響應完成時才將資料返回給應用程式。在測試中可以用來控制響應、修改響應資料。

流模式:Fiddler即時將響應資料返回給應用程式,更接近真實環境。例如測試效能時需要選擇此模式。

3.會話列表面板

介面左側的部分,主要包括

Result:http的響應狀態

Protocol:協議型別

Host:請求地址的域名

Url:請求的伺服器路徑

Body:請求的大小,單位byte

Content-Type:請求響應的型別

Process:請求發出者及程序ID

Comments:可以給會話新增備註

4.會話詳情面板

會話詳情面板分為兩部分

1。上方為request請求的詳細資訊,檢視方式常用headers(頭部資訊)、webforms(表單格式)、cookies、raw(完整資訊,最常用)、json(json格式)

2。下方為response響應資訊,檢視方式與上方的請求框類似。

需要注意的一點:當響應資訊裡出現亂碼時,直接點選下圖黃色條即可解碼。

測試必會+面試必問--fiddler引數詳解

5.命令列

視窗左下角還有一個不起眼的黑色框,這塊命令列模式,可以輸入指令。比如輸入cls進行清屏。

測試必會+面試必問--fiddler引數詳解

二、Filters功能詳解

測試必會+面試必問--fiddler引數詳解

Filters的功能是透過設定過濾規則,實現在會話中僅顯示我們想要的請求。

過濾規則包含一下幾種

過濾規則

說明

1.Hosts(常用)

1)No Zone Filter:不對內網和外網進行過濾 show only Intranet Hosts: 內網 show only internet Hosts:外網

2)No Host Filter :不對主機名進行過濾 Hide the following Hosts:隱藏下邊輸入的主機名的會話 show only the following Hosts:標記以下主機的會話

例如:

測試必會+面試必問--fiddler引數詳解

如果要過濾本機,127。0。0。1 和 localhost都需要寫

百度有很多二級域名,前邊可以寫*

2.Clients Process

Show only traffic from

指定只顯示某個 Windows 程序中的請求,右側會列出當前所有的 Windows 程序。

測試必會+面試必問--fiddler引數詳解

Show only Internet Explorer traffic

只顯示 IE 發出的請求。

Hide trafficfrom service host

隱藏來自service host的請求。

3.Request Headers(常用)

show only if URL contains

僅顯示URL中包含指定字串的請求(字串可以是URL中的一部分,

多個字串用空格分開

(多個表示 或,即只要URL包含任一字串,都會顯示), 可以是正則或完整的URL)

Hide if URL contains

僅隱藏URL中包含指定字串的請求(字串可以是URL中的一部分,多個用空格分開, 可以是正則或完整的URL)

Flag requests with headers

標記帶有特定header的請求(即加粗)。例如,我想突出顯示header資訊中帶有token欄位的URL請求,即可以勾選上這項,並在後面輸入:token

Delete request headers

刪除請求中的Header欄位。在進行測試時非常有用,比如去掉URL中的token資訊,判斷伺服器是否有做token校驗

Set request Header

在URL請求中新增頭欄位,與上一條對應。前面輸入欄位,後面輸入值

4.Breakpoints

Break request on Post

針對Post請求設定斷點。

Break request on GET with query string

針對Get請求設定斷點。

Break on XMLHttpRequest

針對Ajax請求設定斷點。

Break response on Content-type

針對響應報文中header欄位

Content-Type

匹配成功的請求設定斷點。

5.Response Status Code

Hide success(2xx)

隱藏響應狀態碼為2xx的URL請求,如響應狀態碼為200的URL請求將隱藏掉。

Hide non-2xx

隱藏響應狀態碼不是2xx的URL請求。

Hide Authentication demands(401,407)

隱藏認證(響應狀態碼為:401 407)的URL 請求。

Hide redirects(300, 301, 302, 303,307)

隱藏重定向(響應狀態碼為:300 301 302 303 307)的URL請求。

Hide Not Modifield(304)

隱藏不是快取的狀態碼(304)的URL請求

6.Response Type and Size

Show all Content-Type

顯示所有型別Content-Type的請求,Content-Type即為響應結果header資訊中Content-Type欄位。

Show only IMAGE/*

僅顯示響應型別為圖片的請求。(即響應header中Content-Type=IMAGE/*的請求,*為萬用字元)

Show only HTML

僅顯示響應型別為HTML的請求。

Show only TEXT/CSS

僅顯示響應型別為TEXT/CSS的請求。

Show only SCRIPTS

僅顯示響應型別為SCRIPTS的請求。

Show only XML

僅顯示響應型別為XML的請求。

Show only JSON

僅顯示響應型別為JSON的請求。

Hide IMAGE/*

隱藏所有響應型別為圖片的請求。

Hide smaller than

隱藏小於指定大小響應結果的請求。(大小可以在 Inpsectors 中響應結果部分的 Transformer 中檢視)

Hide larger than

隱藏大於指定大小響應結果的請求。

Block script files

阻止返回正常JS檔案。

Block image files

阻止返回正常圖片檔案。

Block SWF files

阻止返回正常SWF檔案。

Block CSS files

阻止返回正常CSS檔案。

7.Response Header

Flag responses that set cookies

響應中有cookies資訊的加上標識(斜體)。

Flag responses with headers

標記響應中帶有特定header的請求(即加粗)。

Delete response headers

刪除響應資訊中指定的Header欄位。

Set response header

在響應中新增header欄位。如新增Transfer-Encoding: chunked,前面填寫Transfer-Encoding,後面填寫chunked。

三、Inspectors檢查器功能詳解

Inspectors 主要是檢視請求報文、響應報文,是Fiddler最主要的功能。Inspectors 介面

上半部分為請求報文

下半部分為響應報文

1.請求報文

Request Headers 可以分層級分類顯示請求頭的資訊,包含請求的Cache、Client、Cookies、Entity、Miscellaneous、Security、Transport等相關資訊,但並不是所有請求都包含以上全部資訊。

測試必會+面試必問--fiddler引數詳解

此外,Inspectors 根據請求的不同,可以選擇多種格式化的形式展示請求報文的部分或全部資訊,但是一個請求不可能有所有的展現形式。

測試必會+面試必問--fiddler引數詳解

TextView

以文字格式展示

2.響應報文

結構與請求報文相似,以多種格式化的形式展示請求報文的部分或全部資訊。

測試必會+面試必問--fiddler引數詳解

3.應用場景

傳送某個介面請求,返回的內容不是預期的結果時,抓包分析請求、響應報文

點選某個按鈕沒反應時,抓包分析請求、響應報文

(測試常用)當沒有介面文件時,可透過web端點選,抓包分析請求、響應報文,檢視請求引數和響應內容

介面測試時,當構造的請求返回總是報錯時,可以透過對比請求報文與介面文件中的資訊,查詢問題。

四、AutoResponder功能詳解

Fiddler 的 AutoResponder 可以實現自動重定向,主要是透過事先新增好的 Rule,進行規則匹配。只要匹配,就會攔截請求,然後篡改原始響應內容到本地或者指定響應,從而實現自動重定向。

1.設定規則

1.1手動設定規則

比如我們把百度首頁的響應結果改為一個測試的html檔案

1。先寫一個test。html

測試必會+面試必問--fiddler引數詳解

2。在AutoResponder中點選‘Add Rule’,輸入匹配的內容(

https://www。

baidu。com

)和修改後的響應內容(test。html)

步驟如下:

測試必會+面試必問--fiddler引數詳解

找到我們剛寫的test。html,點選save儲存

測試必會+面試必問--fiddler引數詳解

3。在瀏覽器在開啟百度,看看效果

測試必會+面試必問--fiddler引數詳解

1.2引用會話設定規則

這個很簡單,就是從左側列表把某個會話拖到右側AutoResponder視窗中來,然後修改我們想要的響應結果,最後點選save儲存即可

測試必會+面試必問--fiddler引數詳解

可以勾選後邊的‘Match only once’,代表該規則只匹配一次。

2.匹配規則

AutoResponder 匹配規則有四種:字串匹配、NOT 匹配、EXACT 匹配、REGEX 匹配。

2.1字串匹配

直接輸入字串,進行模糊匹配,匹配包含該字串的請求。

測試必會+面試必問--fiddler引數詳解

開啟百度檢視

測試必會+面試必問--fiddler引數詳解

2.2NOT 匹配

對應字串匹配,發現不匹配包含該字串的請求

2.3EXACT 匹配

精準匹配,常用。

比如,我們精準匹配百度首頁,如果匹配,請求前自動斷點。

測試必會+面試必問--fiddler引數詳解

然後我們在瀏覽器訪問百度,然後回來檢視fiddler,斷點成功

測試必會+面試必問--fiddler引數詳解

2.4REGEX

匹配

使用正則表示式匹配,測試中不常用,不作詳解。

3.測試中的應用場景

1。在測試介面時,可以自定義返回內容,透過自定義的返回內容,進而測試程式接收到不同返回後,不同的處理邏輯

2。可以利用此功能在線上環境提前驗證正在開發的功能。比如前端要換一個圖片,我們可以直接在線上環境把之前的請求指向本地圖片,進行頁面佈局、適配等驗證。

舉個例子:百度要換主頁的logo了,我們可以自己改一下對應圖片,先測起來。

測試必會+面試必問--fiddler引數詳解

然後再開啟百度看一下

測試必會+面試必問--fiddler引數詳解

ok,改成功了,可以先測起來了,很明顯,我這圖片橫向被壓縮了,提bug。

五、Composer功能詳解

Composer的功能是用來建立併發送http request請求的。

方式有兩種,一種是Parsed方式,一種是Raw方式。

兩種方式實現的功能是一樣的,只是Parsed方式是以圖形介面的方式構造請求,Raw方式是以HTTP請

求報文的格式構造請求的。

構建請求的方式也有兩種:

1。手寫

2。直接從左側的會話列表拉過來,然後進行修改

1.Parsed方式

Parsed方式的功能和postman類似,但是沒有postman好用,介面如下

測試必會+面試必問--fiddler引數詳解

請求構建好了,點選Execute傳送即可。

2.Raw方式

測試必會+面試必問--fiddler引數詳解

請求構建好了,點選Execute傳送即可。

3.應用場景

3.1常規介面測試

使用Composer傳送request請求,其實就是當做postman來用,優點就是可以直接從左側會話列表拉請求過來。

3.2篡改請求資料

抓取到請求後,拖拽到Composer視窗,根據測試需要修改請求報文,進行異常資料測試。

也可以用於除錯介面。

六、斷點功能詳解

斷點功能是Fiddler一個強大且常用的功能。

設定斷點有兩種方式:

1。透過選單欄斷點(全域性斷點)

2。命令列斷點(區域性斷點)

1.透過選單欄斷點

透過選單欄設定的斷點會對之後的所有HTTP請求有效,即全域性斷點。

路徑:Rules——Automatic Breakpoints

測試必會+面試必問--fiddler引數詳解

Before Requests

Fiddler收到請求,傳送給伺服器之前,對請求進行攔截,這時候可以修改請求的資料。

After Responses

Fiddler收到伺服器響應,返回給客戶端之前,對響應資料進行攔截,這時候可以修改響應的資料。

我們選擇Before Requests後開啟百度試一下:

測試必會+面試必問--fiddler引數詳解

顯示如圖介面就代表斷點成功了,這時候可以修改請求,然後按綠色位置‘run to completion’繼續。

2.透過命令列斷點

可以透過在命令列輸入指令,實現對特定型別的請求進行斷點,即區域性斷點。

常用的斷點命令:

需求

命令

命令列輸入對應請求後,按回車生效。

3.應用場景

測試中,設定斷點可篡改請求和返回的資料包。根據測試的不同場景,有時需要在測試過程中更改請求、或者更改響應內容,從而達到最終的測試目標。

ok,這些就是測試在Fiddler中常用到的功能。

我也是在學習階段,目前只接觸到這些模組,之後用到其他模組再寫,爭取把Fidder摸透。

標簽: 請求  響應  斷點  url  報文