fiider弱網測試整理

爲什麼進行弱網測試

模擬用戶在網絡不穩定的狀態或者網速低,這種情況會出現一些bug,嚴重影響用戶體驗,要解決這種問題就需要製造弱網環境,復現

Fiddler怎樣模擬弱網?

Fiddler 是一個 HTTP 調試代理,它能夠記錄所有你電腦和互聯網之間的 HTTP 通訊,Fiddler 也可以讓你檢查所有的 HTTP 通訊,設置斷點,以及修改所有的“進出”的數據(指Cookie/HTML/JS/CSS 等文件)。
利用Fiddler來模擬惡劣的網絡環境,實現簡單,較爲直觀,缺點是隻能支持那些利用HTTP進行通信和交互的服務。

  • 打開fiddler,默認情況下Rules –> Performances –> Simulate Modem Speeds 是未勾選狀態,網絡正常。當選中此選項(模擬網速)後,網速就會變很慢,打開一個網頁要加載很久。這樣就實現了弱網絡效果。
    在這裏插入圖片描述
    要了解網速的具體數值,可以使用一個工具speedtest

限速原理

Fiddler限速是以網絡延遲的方式實現的,網絡延遲時間*網速=傳輸字節數。

  • 點擊Rules – Customize Rules(快捷鍵Ctrl + R)打開Fiddler ScriptEditor,或者直接點開右側主頁籤的FiddlerScript。

在這裏插入圖片描述

  • 打開該文件後,Ctrl + F 查找m_SimulateModem標誌位,可以看到如下代碼:
    在這裏插入圖片描述

註釋說明: request-trickle-delay中的值代表每KB的數據被上傳時會被延時多少毫秒;response-trickle-delay則對應下載時每KB的數據會被延時多少毫秒。比如你要模擬上傳速度100KBps的網絡,那上傳延遲就是1KB/100KBps=0.01s=10ms,就改成10。

調整網絡環境參數

查找到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(1,50);
// Delay receives by 150ms per KB downloaded.
oSession[“response-trickle-delay”] = “”+randInt(1,50);

Fiddler模擬惡劣網絡環境的侷限性

Fiddler進行限速較爲簡單和靈活,配置也較爲方便,但是由於它是一個應用層的HTTP的代理,只能模擬該層上的行爲,對於一些複雜的網絡層的丟包、重傳等惡劣情況就不能很好的模擬出來,而且對於其他協議的應用也不支持

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章