[轉(zhuǎn)]用Fiddler模擬低速網(wǎng)絡(luò)環(huán)境

Fiddler是一個(gè)web調(diào)試代理扒腕。它能夠記錄所有客戶端和服務(wù)器間的http請(qǐng)求,允許你監(jiān)視,設(shè)置斷點(diǎn)吭净,甚至修改輸入輸出數(shù) 據(jù),fiddler包含了一個(gè)強(qiáng)大的基于事件腳本的子系統(tǒng)肴甸,并且能夠使用.net框架語言擴(kuò)展寂殉。更多詳細(xì)的信息我們可以在fiddler的官方網(wǎng)站上去了 解,http://www.fiddler2.com/fiddler2/原在,上面詳細(xì)介紹了fiddler的用法與擴(kuò)展友扰。

我們?yōu)槭裁匆匏?/a>

限速對(duì)于web前端研發(fā)是非常重要的,由于開發(fā)者的機(jī)器一般配置都很高庶柿,并且是在localhost下來調(diào)試程序村怪,所以很難模擬到用戶的真實(shí)使用情 況,如正在下載JS,css等靜態(tài)資源的時(shí)候浮庐,頁面的一個(gè)渲染情況甚负。當(dāng)網(wǎng)速很慢的時(shí)候,我們更希望看到的是先渲染出用戶界面审残,而不是讓用戶看到一片空白梭域。 那么這個(gè)時(shí)候,網(wǎng)絡(luò)限速就能很方便在localhost針對(duì)類似的情況來做性能調(diào)試與優(yōu)化搅轿。

fiddler模擬限速的原理

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

他提供了一個(gè)功能铲敛,讓我們模擬低速網(wǎng)路環(huán)境…啟用方法如下:

Rules → Performances → Simulate Modem Speeds (如下圖)

勾選之后,你會(huì)發(fā)現(xiàn)你的網(wǎng)路瞬間慢超多…

(想當(dāng)年國中時(shí)我們的網(wǎng)路速度也是一路降子走來啊…)

如果你覺得模擬的速度慢到一個(gè)爆炸会钝,不Make Sense 的話…

你也可以自己定義Modem Speeds 究竟要多快…

點(diǎn)開Rules → Customize Rules (如下圖)

m_SimulateModem這個(gè)字伐蒋,你會(huì)找到下面這段:

這就是他模擬網(wǎng)路速度的原理,每上傳/下載1KB 要delay 多久…

如果你習(xí)慣用kbps 去算的話迁酸,那么我們的算法就是 1000/下載速度 = 需要delay的時(shí)間(毫秒)先鱼,比如50kb/s? 需要delay200毫秒來接收數(shù)據(jù)。

// Delay sends by 300ms per KB uploaded.

oSession["request-trickle-delay"] = "300";

// Delay receives by 150ms per KB downloaded.

oSession["response-trickle-delay"] = "150";

請(qǐng)注意奸鬓,當(dāng)你存檔之后焙畔,原本已經(jīng)勾選的Simulate Modem Speeds 會(huì)被取消勾選,

要記得再到Rules → Performances → Simulate Modem Speeds 勾選喔~

同場(chǎng)加映:讓Fiddler 只針對(duì)某個(gè)Process 進(jìn)行Debugging

以Windows 為例串远,F(xiàn)iddler 開了之后宏多,只要是走IE 下「網(wǎng)際網(wǎng)路選項(xiàng)」的程式(IE, Chrome)

預(yù)設(shè)所有流量都會(huì)經(jīng)過Fiddler

如果你覺得你在模擬低速網(wǎng)路連網(wǎng)頁時(shí),不想影響其他程式…

你可以指定Fiddler 只針對(duì)某Process Debug...

方法為澡罚,把Fiddler 視窗中伸但,那個(gè)很像靶心的東西給拉到你要Debug 的程式上(如下圖)

被你靶心拉到的程式,在一瞬間會(huì)有「觸電」的感覺如下圖XD

放開滑鼠后留搔,F(xiàn)iddler 就只會(huì)監(jiān)控你指定的Process 啰~

其他Fiddler 小秘技(from Vexed's Blog)

Fiddler替換線上檔案為本機(jī)端檔案或另一個(gè)線上檔案

先講將線上檔案替換為本機(jī)端檔案更胖。 方法是點(diǎn)下Fiddler 右上的AutoResponder ,勾選Enable automatic responses 和Unmatched requests passthrough 隔显,按下右邊的Add :

再將下方的Rule Editor 第一行修改為線上檔案位址:

線上檔案位址也可以使用Regular Expression 闸准,開頭加上regex: 即可叼风。

按下Rule Editor 第二行右邊的箭頭昵慌,選擇Find a file ... :

選擇要替換成的本機(jī)端檔案袭蝗,按下右邊的SAVE :

大功告成!

將線上檔案替換成另一個(gè)線上檔案哺窄,步驟幾乎一模一樣捐下,差別僅在Rule Editor 第二行填入的是另一線上檔案位址:

感謝草兒介紹AutoResponder這么好用的東西m(__ __)m 。

更多AutoResponder的說明請(qǐng)參考Fiddler官方文件- AutoResponder Reference 萌业。

Fiddler替換HTTPRequest Host

這邊指的替換HTTP Request Host是坷襟,所有原先發(fā)到a.com的HTTP Request , Fiddler都幫你轉(zhuǎn)發(fā)到b.com 生年,而在瀏覽器中毫無感覺婴程。測(cè)試debug過程中常有這種需求,例如用www.dev.demo.com替換 www.demo.com 抱婉。

替換的方法有兩種档叔,一種是暫時(shí)的桌粉,一種是永久的。 暫時(shí)的方法是在Fiddler 左下角輸入:

urlreplace www.demo.com www.dev.demo.com

按下Enter 衙四,所有原先發(fā)到www.demo.com 的HTTP Request 就轉(zhuǎn)發(fā)到www.dev.demo.com 了铃肯。

要清除轉(zhuǎn)發(fā),請(qǐng)?jiān)谕晃恢幂斎耄?/p>

urlreplace

按Enter 就可以了传蹈。

更詳細(xì)的說明請(qǐng)參考Fiddler官方說明文件- QuickExec Reference 押逼。 可以發(fā)現(xiàn)urlreplace 做的是整個(gè)網(wǎng)址字串的取代,所以可以動(dòng)手腳的地方不只于此惦界。

永久的方法是修改Fiddler的CustomRules.js挑格,注意是.js! 點(diǎn)下Fiddler 上方的Rules 沾歪,再點(diǎn)Customize Rules :

如果有安裝FiddlerScript Editor 漂彤,會(huì)用FiddlerScript Editor開啟CustomRules.js ,否則會(huì)用筆記本開啟瞬逊。 或者也可以到「我的文件 Fiddler2 Scripts 」直接編輯CustomRules.js 显歧。

請(qǐng)先在CustomRules.js 找到:

static function OnBeforeRequest ( oSession : Session ) {

// ...

}

在函式OnBeforeRequest 中加入:

if ( oSession . HostnameIs ( 'www.demo.com' ) )

oSession . hostname = 'www.dev.demo.com' ;

將CustomRules.js 存檔仪或, Fiddler 會(huì)自動(dòng)重新載入CustomRules.js 确镊,原先發(fā)到www.demo.com 的HTTP Request 就會(huì)自動(dòng)轉(zhuǎn)發(fā)到www.dev.demo.com 。

更詳細(xì)的說明請(qǐng)參考Fiddler官方說明文件- Script Samples 范删。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蕾域,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子到旦,更是在濱河造成了極大的恐慌旨巷,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件添忘,死亡現(xiàn)場(chǎng)離奇詭異采呐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)搁骑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門斧吐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仲器,你說我怎么就攤上這事煤率。” “怎么了乏冀?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵蝶糯,是天一觀的道長。 經(jīng)常有香客問我辆沦,道長昼捍,這世上最難降的妖魔是什么识虚? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮妒茬,結(jié)果婚禮上舷礼,老公的妹妹穿的比我還像新娘。我一直安慰自己郊闯,他們只是感情好妻献,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著团赁,像睡著了一般育拨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欢摄,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天熬丧,我揣著相機(jī)與錄音,去河邊找鬼怀挠。 笑死析蝴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绿淋。 我是一名探鬼主播闷畸,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼吞滞!你這毒婦竟也來了佑菩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤裁赠,失蹤者是張志新(化名)和其女友劉穎殿漠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體佩捞,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绞幌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了一忱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莲蜘。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖掀潮,靈堂內(nèi)的尸體忽然破棺而出菇夸,到底是詐尸還是另有隱情,我是刑警寧澤仪吧,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布庄新,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏择诈。R本人自食惡果不足惜械蹋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望羞芍。 院中可真熱鬧哗戈,春花似錦、人聲如沸荷科。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畏浆。三九已至胆胰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刻获,已是汗流浹背蜀涨。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝎毡,地道東北人厚柳。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像沐兵,于是被迫代替她去往敵國和親别垮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評(píng)論 25 707
  • fiddler作為一個(gè)程序猿+測(cè)試媛必備的工具痒筒,其他除了最基本的使用方法之外宰闰,還有很多強(qiáng)大到不行小技巧 下面將遇到...
    宇文臭臭閱讀 2,127評(píng)論 0 5