Fiddler已經預置提供了模拟Modem速度的選項,其位置位于:
Rules->Performances->Simulate Modem Speeds

勾選該選項後,所有通過Fiddler代理的流量都會變得用56k modem上網一般。
要直覺觀察限速後的效果,最好使用運作在浏覽器中的測速工具,這裡推薦用“http://www.speedtest.cn/”線上測速工具進行測試。
調整模拟惡劣網絡環境的參數
直接模拟Modem速度實在是慢爆了,事實上就算是在很差信号的情況下,手機移動網絡的速度都已經超過了56k 的Modem速度,是以采用預設的配置模拟出來的環境,并不一定符合需求,此時就需要對限速的參數進行調整。
Fiddler本身就提供了一個配置檔案供調整這些參數,點選:
Rules – Customize Rules…
打開CustomRules.js檔案(預設位于使用者目錄的文檔目錄下的Fiddler2Scripts),字尾名是js。在編輯内容中找到“m_SimulateModem”标志位:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "150";
}
該标志位控制着oSession的兩個參數值的設定,當勾選了Simulate Modem Speeds時,request-trickle-delay與response-trickle-delay就會被設定,其中request-trickle-delay中的值代表每KB的資料上傳時會被延時多少毫秒,response-trickle-delay則對應下載下傳每KB的資料會被延時多少毫秒,如果本身網速已經相當快的話,這裡設定的值就可以近似地推算出開啟模拟後的上傳和下載下傳帶寬了,比如預設設定下下載下傳延時為150ms,上傳延時為300ms,對應可以推算出大緻的模拟帶寬為:
上傳帶寬=(1*8/1000)/0.300≈0.053Mbps
下載下傳帶寬=(1*8/1000)/0.150≈0.027Mbps
編寫自定義腳本
進一步地擴充CustomRules.js裡的邏輯,參照Jscript的文檔可以在模拟惡劣環境中加入更多自定義的邏輯,這裡實作了一個随機延時量設定,使得網絡帶寬不恒定為一個低速的值,而是會在一定範圍内随機抖動:
static function randInt(min, max) {
return Math.round(Math.random()*(max-min)+min);
}
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = ""+randInt(1,50);
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = ""+randInt(1,50);
}