數據源於:http://blog.csdn.net/eleven521/article/details/19089671
弱網測試原理以及方法(一)
一、為什么要進行弱網測試?
按照移動特性,各種網絡連接協議不同,導致通信的信號不同,速率也不同,影響應用的加載時間、可用性、穩定性
二、什么樣的網絡屬於弱網?
低於2g速率的時候都屬於弱網也可以將3g划分為弱網 一般wifi不納入弱網測試范圍。
三、如何進行弱網測試?
1.SIM卡的網絡切換
手機-設置-移動網絡設置-網絡類型選擇
3G卡有3種模式:1.只使用2G網絡 2.只使用3G網絡 3.3G網絡優先
根據手機型號的不同,上面的選項可以會稍有變化。
因為電信、移動、聯通的速率各不相同所以可以取速率最低的值進行測試。
2. 使用虛擬機模擬網絡速率
3. 使用Fiddler來進行網絡代理。
fiddler模擬限速的原理
我們可以通過fiddler來模擬限速,因為fiddler本來就是個代理,它提供了客戶端請求前和服務器響應前的回調接口,我們可以在這些接口里 面自定義一些邏輯。Fiddler的模擬限速正是在客戶端請求前來自定義限速的邏輯,此邏輯是通過延遲發送數據或接收的數據的時間來限制網絡的下載速度和 上傳速度,從而達到限速的效果。
他提供了一個功能,讓我們模擬低速網路環境…啟用方法如下:
Rules → Performances → Simulate Modem Speeds :模擬調制解調器的速度
啟動fiddler需要進行如下設置:
1.設置端口號:

allow remote computers to connect “允許遠程計算機連接”為設置的代理可以連接到fiddle上,必須勾選
2.重啟fiddle;
3.設置模擬調制解調器的速度:

4.設置手機代理
手機代理設置“ip地址為本機的ip,端口號為之前設置的端口號(確保端口號不被占用)”
5.手動設置設置上行,下行速率,模擬網路速度的原理,每上傳/下載1KB 要delay 多久…

網絡取值的算法就是 1000/下載速度 = 需要delay的時間(毫秒),比如50kb/s 需要delay200毫秒來接收數據。
查找代碼如下:
if (m_SimulateModem) {
//Delay sends by 300ms per KB uploaded. //每延遲300ms發送1kb的數據,也就是每1s發送3kb的數據
oSession["request-trickle-delay"] = 300
//Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = 150//每延遲150ms下行1kb的數據
}
請注意,當你存檔之后,原本已經勾選的SimulateModem Speeds 會被取消勾選,要記得再到Rules → Performances → Simulate Modem Speeds 勾選喔!
6.設置完成后,清空原有的log,並使用你的app進行弱網條件下的操作,
選擇第一個請求和最后一個請求,可獲得整個頁面加載所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化
如下圖:

不同請求耗時多少的圖形表,獲取那種資源耗時最大,進而進行優化:
如下圖

