1. 程式人生 > 實用技巧 >Fiddler弱網設定

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
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。