1. 程式人生 > >app 效能測試--弱網

app 效能測試--弱網

介紹:

Fiddler是最強大最好用的Web除錯工具之一,它能記錄所有客戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料. 使用Fiddler無論對開發還是測試來說,都有很大的幫助。

Fiddler 是以代理web伺服器的形式工作的,它使用代理地址:127.0.0.1, 埠:8888. 當Fiddler會自動設定代理, 退出的時候它會自動登出代理,這樣就不會影響別的程式。不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動登出,會造成網頁無法訪問。解決的辦法是重新啟動下Fiddler.


Fiddler抓包及分析:

開啟Fiddler,如下圖所示

1.配置Fiddler,充許“遠端連線”

在選單tool -->Fiddler Options -->Connections -->Allow remote computers to connect(允許遠端計算機連線) 選中,之後重啟一下Fiddler。


2. 獲取Fiddler所在機器的IP地址

使當前開啟無線網絡卡,連線無線網路,然後檢視當前PC的IP,通過ipconfig查詢,如下圖所示,查到的結果是192.168.1.114。


3.手機上配置Fiddler為代理

使手機連上無線網絡卡,連線無線網路,並與PC連線同一個WIFI熱點,連上之後,在設定-->WLAN -->長按當前連線的網路-->修改網路 -->顯示高階,如下圖所示,代理設定:手動;代理伺服器主機名:步驟2中查出的IP(192.168.1.114),埠:8888,然後點選“儲存”。

4.模擬弱網

1、修改弱網引數

Fiddler -->Customize Rules(自定義規則),點選,彈出CustomRules.js檔案,此檔案位於:位於: C:\Documents and Settings\[your user]\My Documents\Fiddler2\Scripts\CustomRules.js 下,找m_SimulateModem這個字,你會找到下面這段:

[javascript] view plaincopy
  1. if (m_SimulateModem) {  
  2.     // Delay sends by 300ms per KB uploaded.
  3.     oSession["request-trickle-delay"] = "300";   
  4.     // Delay receives by 150ms per KB downloaded.
  5.     oSession["response-trickle-delay"] = "150";   
  6. }  

這就是Fiddler 模擬網路速度的原理,每上傳/下載1KB 要delay 多久…其中,request是請求(上傳),response是返回(下載),如果習慣用kbps 去算的話,那麼我們的演算法就是 8*1000/下載速度 = 需要delay的時間(毫秒),比如50kb/s  需要delay200毫秒來接收資料。

計算過程:1KB傳送需要延時300ms ,那麼1S可以傳送 8*1000/300 Kb,需要延時300ms,那麼要1S傳送2.7Kb, 將延時:2962ms

2G的上傳速率為:2,7Kbs下載速率為:9.6Kbs 所以此處設定:2962 ms 與833 ms,程式碼如下:

[javascript] view plaincopy
  1. if (m_SimulateModem) {  
  2.      // Delay sends by 300ms per KB uploaded.
  3.      oSession["request-trickle-delay"] = "2962";   
  4.      // Delay receives by 150ms per KB downloaded.
  5.      oSession["response-trickle-delay"] = "833";   
  6.  }  

2、確定設定的引數

設定完之後,記得再到Rules → Performances → Simulate Modem Speeds 勾選

5.停掉PC與手機上面通上網的應用

把PC與手機上面上網的程序殺掉,如果上網的應用太多了,那網速肯定也會受到影響,這樣出來的報告,就會不準確。

6.進行抓包

在手機上面開啟要測試的應用或者網頁,就會在fiddler中有相應的記錄,如下圖所示。


點選其中一條記錄,在右側的statistics中就會顯示當前介面相應資料。bytes Sent 是指傳送的請求數,Bytes Received:返回的資料量,Overall Elapsed:總耗時。

轉載地址:http://blog.csdn.net/leiya172/article/details/38438915