基於fiddler外掛程式開發的Mobile Testing網路監控與分析

來源:互聯網
上載者:User

標籤:

一、背景和目的:

由於目前App前端業務測試很少關注後端網路介面的異常情況,用戶端QA在項目測試時往往局限於關注測試功能,導致測試粒度較粗。即使按照CheckList過功能點,用戶端QA對後端介面的覆蓋情況也很難做到明確把握。

Fiddler是我們在用戶端測試時使用比較普遍的工具,常用於HTTP抓包、構造請求等等。原生的fiddler外掛程式,缺乏對包大小,網路請求時間長度、介面訪問頻次、介面覆蓋度等維度進行網路請求的分析,同時提供網速控制的功能,下文介紹開發定製fiddler外掛程式輔助app業務測試。

 

二、工具實現原理

         首先瞭解一下fiddler的實現http代理請求的原理,方便我們深入的研究。Fiddler實現的原理是截獲了windows的winnet介面,在轉寄伺服器請求和響應的階段,可以hook住傳遞的參數,達到監控甚至修改網路資料包的能力。如所示,fiddler提供了4個介面,AutotamperRequestBefore,AutotamperRequestAfter,AutotamperResponseBefore,AutotamperResponseAfter。

我們在自己外掛程式中實現這四個方法即可滿足我們自己的測試需求。在我遇到的項目中,我們實現了以下功能。

1、  發現網路請求包的異常問題,例如,介面資料包大小過大,協助分析介面是否存在冗餘資料,從而節省使用者使用app的網路流量負擔。

2、  發現網路請求時間逾時異常問題,例如,發現介面訪問時間過大,協助發現後端潛在的邏輯錯誤。

3、  發現網路請求訪問頻次異常問題,例如,app頁面緩衝機制是否正常;介面是否因為發送時機不對導致頻繁發送。

4、業務測試可以分析介面覆蓋度,指導後續測試重點,使測試點更完整,避免漏測。

5、修改請求響應延遲,類比各種網速,如2,3g網路,斷網等情況,方便測試各種網路異常case。

程式樣本如下:

三、工具的主要功能:

  1. 包大小分析:

Packet Size tab 顯示根據host.ini中配置的host過濾結果,按照請求的包的大小進行降序排列;用於分析異常的網路請求資料包。

Reset按鈕前面的兩個數字分別對應測試過程中,請求的總流量和總耗時;

兩個視窗分別即時顯示請求的包大小和請求的次數,並給出峰值;

 

   2.請求時間長度分析:

過濾之後的URL按照請求耗時的降序排列,請求耗時為ClientBeginRequest與ClientDoneResponse之間的時間差值。根據網路請求耗時,判斷異常請求。

 

 3.請求次數:

請求次數和測試執行過程對比,分析是否存在重複多次發送某請求。

 

4.介面覆蓋情況監控:

Coverage tab下需要監控的介面通過coverurl.ini配置,在測試過程中,覆蓋到的介面,對應的小方塊顯示填充,否則不填充。對監控介面的覆蓋率進行即時統計,結果如餅圖所示:

通過介面覆蓋情況監控,可以知道用戶端QA在測試過程中對後端介面,尤其是新增介面覆蓋情況,對測試覆蓋的全面情況以及CheckList的設計提供知道;用戶端測試應重視對新增介面的覆蓋。

 

5.網速控制

通過拖動TrackBar上的滑塊設定網速的值;可以用來類比不同的網路環境:

例如,無限制下的WiFi環境;3G網路(40-500kb/s);2G網路(8kb/s);斷網。

無限制:

斷網:

利用網路類比,結合以上1-4點功能,方便測試各種網路異常case。

 

四、還可以做的更多

上面已經實現的功能主要集中在介面資料的監控上,其實,我們不是不可以更進一步,實現介面資料的修改,這也就意味著我們實現了一個通用的移動app 測試mock平台了!

 

參考文獻:

1.Fiddler開發官方doc文檔:http://docs.telerik.com/fiddler/Extend-Fiddler/ExtendWithDotNet

 

更多乾貨分享請關注”百度MTC學院“http://mtc.baidu.com/academy/article

 

基於fiddler外掛程式開發的Mobile Testing網路監控與分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.