自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

測試工程師良品 —— Fiddler工具簡介

開發(fā) 開發(fā)工具
Fiddler 是目前最強大最好用的調(diào)試工具之一,它能記錄所有客戶端和服務(wù)器的http和https請求,設(shè)置 CGI 請求的斷點,甚至修改輸入輸出數(shù)據(jù)。

一、前言

Fiddler 是目前最強大最好用的調(diào)試工具之一,它能記錄所有客戶端和服務(wù)器的http和https請求,設(shè)置 CGI 請求的斷點,甚至修改輸入輸出數(shù)據(jù)。

fiddler 的工作原理,是它在 web server 和 web browser 之間搭了一層 proxy,所有的請求都會經(jīng)過它,如下圖所示:

Fiddler

fiddler可以針對web端和移動端網(wǎng)絡(luò)請求進行抓包分析,如何安裝和實現(xiàn)抓包,以及如何在無數(shù)請求中運用強大的過濾機制進行精準(zhǔn)定位,這里不再進行介紹。fiddler除了進行以上常用功能之外,還能針對抓包過程和請求進行設(shè)置。以下將按照fiddler菜單和fiddler script分類介紹fiddler的一些功能。

二、Fiddler 菜單頁面

除了對web端和移動端進行抓包之外,fiddler菜單還可以實現(xiàn)以下常用功能。

  • 設(shè)置斷點
  • Fiddler AutoResponder 請求地址重定向
  • fiddler限速

1. 設(shè)置斷點

斷點可以分為request和response斷點。request斷點是打在request請求的時候,未到達服務(wù)器之前,response斷點是打在服務(wù)器響應(yīng)之后,在Fiddler將響應(yīng)傳回給客戶端之前攔截??梢酝ㄟ^打斷點,修改請求內(nèi)容,達到需要的目的。

Fiddler可以修改以下請求:

  • Fiddler設(shè)置斷點,可以修改HTTP請求頭信息,如修改Cookie,User-Agent等
  • 可以修改請求數(shù)據(jù),突破表單限制,提交任意數(shù)字,如充值最大100,可以修改成10000
  • 攔截響應(yīng)數(shù)據(jù),修改響應(yīng)體,如修改服務(wù)端返回的頁面數(shù)據(jù)

全局?jǐn)帱c:這種方法會中斷所有的會話

  • 設(shè)置斷點:Rules-> Automatic Breakpoint ->[type]
  • 清除斷點:Rules-> Automatic Breakpoint ->Disabled

單個斷點

(1) 請求前斷點(before response): bpu

  • 在命令行中輸入: bpu www.baidu.com
  • 清除斷點:在命令行中輸入bpu

(2) 響應(yīng)后斷點(after requests): bpafter

  • 在命令行輸入:bpafter www.baidu.com
  • 清除斷點: 在命令行中輸入bpafter

斷點設(shè)置并成功攔截請求,可以在右側(cè)分析區(qū)修改數(shù)據(jù),并選擇 run to continue 或者繼續(xù) break on response。

2. Fiddler AutoResponder 請求地址重定向

AutoResponder 是 Fiddler 比較重要且比較強大的功能之一??捎糜跀r截某一請求,并重定向到本地的資源,或者使用Fiddler的內(nèi)置響應(yīng)??捎糜谡{(diào)試服務(wù)器端代碼而無需修改服務(wù)器端的代碼和配置,因為攔截和重定向后,實際上訪問的是本地的文件或者得到的是Fiddler的內(nèi)置響應(yīng)。

如圖所示,勾選按鈕,并點擊 Add Rule ,將 Rule Editor 第一行修改為線上檔案位址,按下 Rule Editor 第二行右邊的箭頭,選擇 Find a file ... ,選擇要替換成的本機端檔案,按下右邊的 SAVE ,大功告成;將線上檔案替換成另一個線上檔案,只需在 Rule Editor 第二行填入的是另一線上檔案位址。

如圖:

3. Fiddler 限速

web 前端研發(fā)過程中,我們都希望在網(wǎng)速很慢的時候,用戶首先看到的是渲染出的界面,而不是一片空白。那么這個時候,網(wǎng)絡(luò)限速就能很方便在 localhost 針對類似的情況來做性能調(diào)試與優(yōu)化。

通過 fiddler 來模擬限速,是因為 fiddler 本來就是個代理,它提供了客戶端請求前和服務(wù)器響應(yīng)前的回調(diào)接口,我們可以在這些接口里面自定義一些邏輯。Fiddler 的模擬限速正是在客戶端請求前來自定義限速的邏輯,此邏輯是通過延遲發(fā)送數(shù)據(jù)或接收的數(shù)據(jù)的時間來限制網(wǎng)絡(luò)的下載速度和上傳速度,從而達到限速的效果。

開啟方法如下:Rules → Performances → Simulate Modem Speeds。勾選之后,會發(fā)現(xiàn)網(wǎng)速瞬間慢下來了很多。

菜單欄可以直接開啟限速,但是網(wǎng)絡(luò)限速數(shù)值是多少,需要通過 fiddler script 進行查看和設(shè)置。

三、Fiddler script

在 web 前端開發(fā)的過程中,大多數(shù)情況下,通過 fiddler 默認(rèn)菜單的功能可以滿足開發(fā)者的很多調(diào)試需求,然而當(dāng)有更復(fù)雜的調(diào)試場景時,需要通過 Fiddler Script 實現(xiàn)。

Fiddler Script 的本質(zhì)其實是用 JScript.NET 語言寫的一個腳本文件 CustomRules.js,語法類似于 C#, 通過修改 CustomRules.js 可以實現(xiàn)很多菜單欄不能直接實現(xiàn)的功能。

Fiddler script 可以實現(xiàn)的功能:

  • 設(shè)置限速數(shù)據(jù)
  • 修改http的Request或Response

打開腳本文件CustomRules.js有兩種方法:

  • CustomRules.js 位于 C:\Documents and Settings\[your user]\My Documents\Fiddler2\Scripts\CustomRules.js,打開文件即可
  • 在 Fiddler 中打開 CustomRules.js 文件:啟動Fiddler, 點擊菜單 Rules->Customize Rules,彈出 Fiddler Script 編輯框,即可編輯文件

1. 設(shè)置限速數(shù)據(jù)

打開fiddler script編輯框,找到如下代碼:

  1. if (m_SimulateModem) { 
  2.     // Delay sends by 500ms per KB uploaded. 
  3.      oSession["request-trickle-delay"] = "500";  
  4.      // Delay receives by 150ms per KB downloaded. 
  5.      oSession["response-trickle-delay"] = "150";  
  6.  } 

“500”和“150”就是當(dāng)前delay的時間,可以按照需要手動修改。

算法就是 1000/下載速度 = 需要delay的時間(毫秒),比如50kB/s 需要delay20毫秒來接收數(shù)據(jù),所以根據(jù)你需要的網(wǎng)絡(luò)速度來修改上述值。

【注】:存檔之后,原本已經(jīng)勾選的Simulate Modem Speeds 會被取消勾選,需要再到Rules → Performances → Simulate Modem Speeds 勾選,同時需要注意一定要禁用瀏覽器代理插件,以及修改完成后重啟瀏覽器才能生效。

2. 修改http的Request或Response

修改 Request 和 Response 要在 FiddlerScript 中的 OnBeforeRequest 和 OnBeforeResponse 函數(shù)中添加規(guī)則即可。OnBeforeRequest 函數(shù)是在每次請求之前調(diào)用,OnBeforeResponse 函數(shù)是在每次響應(yīng)之前調(diào)用。

將請求轉(zhuǎn)發(fā)到相同端口號的不同服務(wù)器(修改請求的 Host)

  1. if(oSession.HostnameIs("www.baidu.com")) {        
  2.    oSession.hostname = "www.sina.com.cn";  

這個例子是將發(fā)送到百度的請求轉(zhuǎn)發(fā)到新浪,這里只是改變了host,并不改變后面的地址。如下面圖片所示:

除此之外,通過修改 fiddler script 文件內(nèi)容,可以實現(xiàn)很多通過菜單欄無法實現(xiàn)的功能,包括修改 session 的樣式,修改 http(s) 請求內(nèi)容,還可以定制 rule 菜單的子菜單等,可以自行學(xué)習(xí)。

Fiddler 作為目前最好用的調(diào)試工具之一,功能很強大,這里僅做簡單介紹,有興趣的可以深入學(xué)習(xí)。

四、與其他抓包軟件的區(qū)別

1. 與charles:

fiddler 有win和linux版本,linux版本需要在Mono環(huán)境中運行;charles 沒有平臺限制。Fiddler屬于上游,在fiddler里面對http進行的一些修改直接會影響到Charles里面的請求結(jié)果。

2. 與WinPcap:

Winpcap是一個Win32平臺下用于抓包和分析的系統(tǒng),包括一個內(nèi)核級別的packet filter,一個底層的DLL(packet.dll)和一個高級的獨立于系統(tǒng)的DLL(Wpcap.dll)。主要抓取底層通信數(shù)據(jù)包,比如協(xié)議棧、數(shù)據(jù)流組裝等,是底層環(huán)境可以直接操縱網(wǎng)絡(luò)通信的程序。

它不依靠主機的諸如TCP/IP協(xié)議去收發(fā)數(shù)據(jù)包,這意味著它不能處理同一臺主機中各程序之間的通信數(shù)據(jù)。跟fiddler抓取的http(s)數(shù)據(jù)包有本質(zhì)區(qū)別。

【本文是51CTO專欄機構(gòu)“豈安科技”的原創(chuàng)文章,轉(zhuǎn)載請通過微信公眾號(bigsec)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2011-05-19 15:27:39

測試工程師

2009-02-23 09:41:29

面試軟件測試工程師

2015-02-13 19:52:47

測試工程師APPTestin云測

2012-10-10 09:42:58

谷歌測試測試工程師

2016-03-25 13:43:19

飛象網(wǎng)

2019-11-08 11:08:29

測試工程師AI人工智能

2025-03-14 10:00:00

黑客AI網(wǎng)絡(luò)安全

2018-12-29 15:10:22

工程師爬蟲Python

2012-03-02 08:56:25

軟件測試

2022-11-09 07:18:18

驅(qū)動測試BDD

2023-06-08 13:03:55

2012-09-07 10:20:53

2009-03-05 09:39:07

工程師軟件測試加班經(jīng)歷

2009-06-16 11:36:34

軟件測試工程師獵頭職業(yè)

2011-04-18 16:41:01

測試工程師軟件測試

2009-02-24 10:31:33

軟件測試工程師角色定位

2019-09-11 15:29:08

工程師瀏覽器軟件

2011-04-18 15:07:53

測試工程師軟件測試

2009-10-09 09:44:37

2012-12-24 09:41:24

點贊
收藏

51CTO技術(shù)棧公眾號