轉自:http://www.51testing.com/html/01/n-3727001.html
APP弱網模擬測試
移動端測試區別於PC端測試的一點就是網絡的多變性;不一樣的網絡環境和網絡制式的差別,都會對用戶使用app形成必定影響。
例如:進地鐵、上公交、進電梯等,若是app沒有對各類網絡異常進行兼容處理,那麼用戶可能在平常
生活中遇到APP閃退、ANR、數據丟失等問題。所以,app網絡測試,特別是弱網測試顯得尤其重要。
利用fiddler的Simulate Modem Speeds功能,能夠經過設置網絡的上傳、下載的網絡流量大小來達到模擬弱網環境,從而實現弱網模擬測試,即經過延遲發送數據或接收的數據的時間來限制網絡的下載速度和 上傳速度,從而達到限速的效果。
3.一、實例--APP弱網測試
fiddler中選中Rules->Cutomize Rules,在文件中搜索關鍵字:m_SimulateModem;
修改m_SimulateModem值爲true,即開啓網絡模擬:
var m_SimulateModem: boolean = false; |
修改uploaded、downloaded的數據來模擬不一樣的弱網場景:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "384";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "2560";
}
|
上傳1KB須要300ms,轉化一下上傳速度:1Kb/0.3s = 10/3(KB/s),若是想設置上傳的速度爲50KB/s,你則須要設置Delay 時間爲 20ms;(=1000/50)
PS:設置以後能夠經過http://www.speedtest.cn/在線測試網速,看是否生效;
2G通常上行/下行速率約爲:2.七、9.6kbs,模擬設置爲:uploaded 約 2962 ms,downloaded 約 833 ms;(弱網通常指2G網絡)
3G通常上行/下行速率約爲:38四、2560kbs,設置爲:uploaded 約 2.6 ms,downloaded 約 0.39 ms;
PS:弱網模擬還能夠經過其它工具實現,好比360WiFi的限速設置等;
3.二、擴展弱網絡規則
可能在測試中不會想要一個一樣虛弱的網絡環境,而是隨機強弱的網絡,這樣比較貼切真實狀況,那麼能夠修改上述代碼爲:
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,2000);
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = ""+randInt(1,2000);
}
|
這裏的randInt(1,2000)應該很好理解,表明1-2000中的一個隨機整數,這樣就會出現偶爾有延遲偶爾網絡又良好的狀況。
四、前端性能分析及優化
前端性能在必定程度能夠提高用戶體驗,而前端的性能數據能夠經過fiddler的Statistics和Timeline來獲取,從而爲性能分析及優化提供依據。
4.一、實例--前端性能數據獲取分析
經過陳列出全部的HTTP通訊量,Fiddler能夠很容易的向您展現哪些文件生成了您當前請求的頁面。使用Statistics頁籤,用戶能夠經過選擇多個會話來得來這幾個會話的總的信息統計,好比多個請求和傳輸的字節數。
選擇第一個請求和最後一個請求,可得到整個頁面加載所消耗的整體時間。從條形圖表中還能夠分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化。
同時,還能夠經過Timeline分析資源加載時序圖,能夠很直觀地看到頁面上各個資源加載過程所須要的時間和前後順序,有利於找出加載過程當中比較耗時的文件資源,幫助咱們有針對性地進行性能優化。
五、小結
總的來講,fiddler是移動互聯網測試的利器,除以上介紹的這些常見的日用場景外,還有不少其它用途,如域名的重定向、API的測試等,這裏就不一一列舉,若有興趣,可抽空一塊兒探討。