Fiddler弱網設定
設定
開啟fiddler,預設情況下Rules->Performance->Simulate Modem Speeds是未勾選狀態,此時網路正常。當選中此選項後,網速就會變慢,開啟網頁就會載入很久,這樣就實現了弱網效果。
設定.png
備註:如果想了解(上傳/下載)網速具體數值,可以訪問http://www.speedtest.cn/網站,進行測試
限速原理
Fiddler限速是以網路延遲的方式實現的,網路延遲時間*網速=傳輸位元組數
點選Rules – Customize Rules(快捷鍵Ctrl + R)開啟Fiddler ScriptEditor,或者直接點開右側主頁籤的FiddlerScript。
開啟Script方式1.png
開啟Scrip方式2.png
開啟該檔案後,Ctrl + F 查詢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";
}
註釋說明:
request-trickle-delay中的值代表每KB的資料被上傳時會被延時多少毫秒;
response-trickle-delay則對應下載時每KB的資料會被延時多少毫秒。
比如你要模擬上傳速度100KBps的網路,那上傳延遲就是1KB/100KBps=0.01s=10ms,就改成10
預設設定下上傳延時為300ms下載延時為150ms,大致模擬出來的寬頻如下:
上傳頻寬 = 1KB/300ms = (1 * 8/1000) /0.300 ≈ 0.027Mbps 下載頻寬 = 1KB/150ms = (1 * 8/1000) /0.150 ≈ 0.053Mbps (1MB = 1024 KB ≈ 1000 KB 為了運算簡便就用了1000的倍數,忽略誤差)
實際頻寬是在計算所得的基礎上乘2,至於原因,沒有深究
上傳頻寬=((1*8/1000)/0.300)*2.0≈0.106Mbps
下載頻寬=((1*8/1000)/0.150)*2.0≈0.053Mbps
假如我們要模擬2M左右的寬頻((1* 8/1000)/ x )*2.0=2
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "8";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "8";
設定網路環境引數
1、查詢到if (m_SimulateModem)語句,修改程式碼。模擬網路頻寬不是恆定的一個低速的值,而是一定範圍內隨機抖動,下面的指令碼實現了一個隨機延時量設定,使得網路頻寬不是恆定為一個低速的值。
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(100,200);
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = ""+randInt(1,50);
}
2、在程式碼裡找到onBeforeRequest,這裡定義了在傳送請求前做什麼。加入如下程式碼可以實現延遲:
oSession["request-trickle-delay"]="3000"; //請求階段延遲3秒
oSession["response-trickle-delay"]="3000"; //響應階段延遲3秒
新增程式碼.png
備註:每次編輯並儲存配置檔案後,Simulate Modem Speeds選項會被取消,需要重新勾選。
作者:小魷魚Gun神
連結:https://www.jianshu.com/p/a9e5605bb454
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。