介面測試之Fiddler弱網測試

  • 2019 年 10 月 10 日
  • 筆記

前言

目前市面上的APP功能越來越豐富,移動端測試也越顯為重要。因為用戶在網速慢的情況下,你的網站(軟體)總能出現各種各樣的問題!!!請不要忽略這一點!針對在不同的網路情況下,接下來,本篇要講述的就是在通過fiddler對APP進行模擬弱網測試,用Fiddler進行弱網環境下的測試,這也是測試人員需要掌握的測試技能。

一、準備環境

1.電腦端安裝好fiddler抓包工具,下載地址:https://www.telerik.com/download/fiddler(傻瓜式安裝即可)

Fiddler

2.準備一台測試手機和測試APP軟體(本篇使用小米5S手機和今日頭條APP)

二、fiddler模擬限速的原理

通過fiddler來模擬限速,因為fiddler本來就是個代理,它提供了客戶端請求前和伺服器響應前的回調介面,我們可以在這些介面里 面自定義一些邏輯。Fiddler的模擬限速正是在客戶端請求前來自定義限速的邏輯,此邏輯是通過延遲發送數據或接收的數據的時間來限制網路的下載速度和 上傳速度,從而達到限速的效果。

三、配置fiddler

fiddler提供了一個功能,讓我們模擬低速網路環境…啟用方法如下:

Rules → Performances → Simulate Modem Speeds :模擬數據機的速度

1.設置埠號

打開Fiddler, Tools-> Options->connections

設置埠

其中:allow remote computers to connect 允許遠程電腦連接」為設置的代理可以連接到fiddle上,必須勾選

2.重啟fiddler工具

3.設置模擬數據機的速度

打開Fiddler,Rules->Performance->勾選 Simulate Modem Speeds

設置模擬數據機

Rules(規則)解析:

1.Hide Image Requests—隱藏圖片請求 2.Hide HTTPS CONNECTs—隱藏HTTPS連接 3.Automatic Breakpoints—自動設置斷點 >Before Requests—在請求前設置斷點,快捷鍵F11 >After Response—在響應後設置斷點,快捷鍵Alt + F11 >Disabled—不自動設置斷點,快捷鍵Shit + F11 >Ignore Images—自動設置斷點時忽略圖片 4.Customize Rules…—自定義規則,快捷鍵Ctrl + R 5.Require Proxy Authentication—需要代理密碼驗證 6.Apply GZIP Encoding—應用GZIP壓縮 7.Remove All Encoding—移除全部編碼 8.Hide 304s—隱藏所以狀態未304(無變更)的請求 9.Request Japanese Content—請求日文內容 10.User-Agents—選擇用戶Web客戶端代理類型,包括了目前主流瀏覽器 11.Performance—性能 >Simulate Modem speeds—模擬數據機速度 >Disable Caching—禁止快取 >Cache Always Fresh—新的快取

4.設置手機代理

手機代理設置「ip地址為本機電腦的ip,埠號為之前設置的埠號(確保埠號不被佔用)

本機IP地址

5.使手機和PC在同一區域網。在手機連接wifi時,選擇顯示高級選項,代理選擇手動。這裡我的手機是華為,其他品牌手機視情況而定。在伺服器主機名中填入,你PC的ip地址,伺服器埠填你之前設置好的8888。

設置手機端IP地址

6.手機瀏覽器中輸入,你的IP地址和埠號。例:10.0.0.153:8888。點擊圖中的位置安裝證書。根據自己的設置安裝完證書

證書

四、Fiddler弱網的原理

1.手動設置設置上行,下行速率,模擬網路速度的原理,每上傳/下載1KB 要delay 多久…

自定義規則

網路取值的演算法: 1000/下載速度 = 需要delay的時間(毫秒),比如50kb/s 需要delay200毫秒來接收數據。

在Fiddler ScriptEditor中搜索關鍵字:m_SimulateModem

搜索關鍵字

程式碼解析:

>首先來判斷m_SimulateModem是否為true,也就是是否設置了弱網模式。 >如果為弱網模式。則分析程式碼oSession[「request-trickle-delay」] = 「300」; 注釋的也很明白,Delay sends by 300ms per KB uploaded.上傳1KB需要300ms,轉化一下上傳速度:1Kb/0.3s = 10/3(KB/s) >如果你想設置上傳的速度為50KB/s,你則需要設置Delay 時間為 20ms >同樣的方法,也可以限制上傳的速度,調整oSession[「response-trickle-delay」]即可

當修改好後,點擊左上角File–>Save進行保存即可

保存修改

需要注意的一點是:當你存檔之後,原本已經勾選的SimulateModem Speeds 會被取消勾選,要記得再到Rules → Performances → Simulate Modem Speeds 勾選喔!

2.設置完成後,清空原有的log,並使用你的app進行弱網條件下的操作

選擇第一個請求和最後一個請求,可獲得整個頁面載入所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化。

運行結果分析1

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

運行結果分析2