愛奇藝網絡控制和抓包測試技術實踐

發表于:2023-07-03來源:infoq作者:愛奇藝技術產品團點擊數: 標簽:
在功能測試方面,異常網絡環境下保證產品功能正確性和保護用戶體驗,是互聯網產品交付的重要指標,需要高可用的網絡控制工具在實驗室環境模擬各種現實異常網絡場景。

導語

移動互聯網時代,網絡形態呈現三大特點:

(1)多樣的接入網絡:2G/3G/4G/Wi-Fi,不同的協議,不同的制式,不同的速率。

(2)復雜的現實場景:空曠的大街,擁擠的體育場,飛馳的汽車,地下穿梭的地鐵。

(3)動態的隨機變化:強網、弱網、無網,下一刻的網絡不確定會怎樣。

愛奇藝測試團隊結合視頻播放異常場景的網絡模擬需求,在開源方案 ATC(Augmented Traffic Control)的基礎上,定制開發動態配置能力,優化了 API 接口,實現了 QTC 工具(QIYITraffic Control),可模擬網絡的動靜態復雜變化;同時,實現了一種低損耗的自動化網絡抓包方案,支持高精度性能測試場景的網絡抓包和數據分析,基本不影響網絡自身傳輸質量。

以下文章與大家一起交流、探討。

背景

功能測試方面,異常網絡環境下保證產品功能正確性和保護用戶體驗,是互聯網產品交付的重要指標,需要高可用的網絡控制工具在實驗室環境模擬各種現實異常網絡場景。目前市場上的工具大概分為兩類:一是硬件控制,如網絡損傷儀;二是軟件控制,商業軟件如 Fiddler 與 Charles,開源軟件如 ATC 與 clumsy 等。硬件方案可提供高精度的動態網絡控制但成本較大,同時二次定制開發難度偏高;軟件方案成本低且精度略差,同時難以模擬動態網絡。

性能測試方面,開播時間是視頻類 APP 重要的性能指標之一,衡量的是用戶等待開播的延遲,常規線下測試是收集多次開播時間數據,經過數據處理得出一個線下測試的開播時間與歷史值比較,是 APP 版本上線前都要測試的內容。

遇到的問題

1. 需要一個穩定模擬指定的、持續動態變化的網絡的工具

通過對網絡環境建模,任意現實場景都可以劃分成強網、弱網、無網狀態,并量化成帶寬、時延、丟包、抖動、誤碼等核心指標。 一個理想的網絡控制工具,就是根據量化指標數據的連續輸入,持續模擬網絡的動態變化 (根據線上問題分析,大部分問題發生在網絡變化的時機)。


圖 1 網絡模型圖

2. 需要一個穩定的低干擾的自動化抓包解決方案

視頻開播是集客戶端邏輯、網絡狀況及服務端邏輯三方面共同作用的結果,除了時間數據,往往需要網絡包來輔助分析。抓包在常用測試中是一個手動測試項,常常通過 360Wi-Fi、小米 Wi-Fi 等組網支持。這類熱點組網簡單,可以快速用于問題的定位和分析,但它的性能測試問題也比較突出,主要問題有三個: 第一,app 設備需要連入熱點設備提供的網絡,同一網絡,存在干擾;第二,熱點設備支持距離短,長時間運行不穩定;第三,手工方案效率低,無法用于批量數據采集 。

解決方案

 


圖 2 整體結構圖

如圖 2 給出的整體結構圖,下面介紹解決方案是如何解決上面提到的問題。

·QTC 方案

根據需求來篩選關鍵特性,畫出方案選型表格,并制定具體的測試活動來填充表格。如下表 1,很明顯硬件方案能夠滿足測試需求,但基于 ATC 開源軟件做二次定制開發,同樣能構建一個低成本的工具并滿足需求。


圖 3 工具方案選型表


圖 4 QTC 方案設計圖

1. 產品形態

硬件要求:雙網卡工作站 + 無線接入設備

軟件要求:Linux 系統 + python2.7

服務部署時間:< 5 分鐘

適用場景:設備需要接入 QTC 服務搭建的 LAN(QTC 熱點,或者 QTC 交換機)

不適用場景:帶寬配置 <64 bps,網絡參數切換時間 < 2s


圖 5 QTC 框架設計圖

2. 使用方法

使用瀏覽器作為配置頁面,跨平臺使用,支持 Android/IOS/windows 多端設備使用。直接在測試設備上進行參數配置,無需其它測試設備協助,在無線熱點覆蓋區域內實現隨時隨地的移動測試。


 

圖 6 QTC 使用 UI 界面

3. 技術細節:動態場景配置(自研)

設計新的數據結構來存儲動態場景(兼容靜態場景數據結構),創建新進程來動態設置,使用進程間同步機制傳遞進程信息來刷新前端 UI。


圖 7 QTC 場景參數結構


圖 8 QTC 配置流程圖

·低損耗網絡抓包方案

基于問題,解決方案由硬件解決方案和軟件解決方案共同組成。

1. 硬件方案

主要解決穩定和抓包兩個問題。測試團隊經過實踐,落地基于鏡像交換機 + 無線 AP 的組網方案。該方案,核心在于 鏡像交換機 ,它將手機的網絡流量鏡像一份到圖中 PC 機器的網口,PC 網口后續用于抓包,這樣就把應用的網絡響應與抓包在物理層分離,應用和抓包機器互不干擾,下圖比較了常用抓包方案和新方案的優缺點。


圖 9 抓包方案對比

新方案通過使用無線路由器釋放熱點,無線網絡較 360 Wi-Fi 和筆記本無線網卡有一個質的提升,舉個例子,實際測試實踐,360 Wi-Fi 網絡連入的手機,連接距離超過 2 米以后,網絡經常變的不穩定,新方案在 10 米左右都能提供一個視頻秒播的體驗,使用路由器提供網絡更加的穩定。

2. 軟件方案

主要解決自動化的問題。自動化的一個關鍵問題就是,手機如何自動化的 開啟和關閉抓包功能 ,這里使用網絡請求的方式搭建這一通路。PC 機本地實現一個 HTTP 的監控服務 ,服務內部實現與抓包工具的交互;手機在執行自動化的場景中,如果需要抓包,通過 HTTP 請求的方式開啟關閉 PC 機的抓包功能,實現自動化。

價值

通過和 IT 團隊合作,將 QTC 節點部署到公司辦公核心網絡,在指定辦公區域放射公共 wifi 信號,只要能接收到 QTC 熱點信號的地方,就可以自行設置接入設備的網絡環境,模擬各種異常網絡場景。不區分業務形態,不區分接入的設備類型,且不同設備之間互不干擾,實現“移動測試”,同時在后臺服務器上,可以抓包追蹤所有的網絡流量,實現“精準運維”。目前 QTC 服務已經應用于播放 SDK、基線 APP、TV app 和短視頻業務等多個產品的線下弱網測試,贏得了技術團隊的認可和好評,有力提升了產品質量和研發效率。以 TV app 為例,借助 QTC 工具,新增 26 條弱網測試用例,已支持兩個產品版本測試,平均每版本發現弱網功能 bug 約 10 個。

基于新的抓包組網,愛奇藝基線 APP 性能測試接入后,開播等性能測試可以自動收集網絡包數據。通過使用抓包工具定位到了 APP 點擊轉場慢、網絡請求 DNS 慢導致的開播性能問題。

未來規劃

  1. 現實場景的模型化,尋找更精準的測量方法和測試工具來采集現實場景的網絡參數,并拓展采集維度,構建網絡場景數據庫。
  2. 借助 AI 技術做對網絡場景數據做智能挖掘,找到異常場景的特征值,提高測試的精準性。
  3. 不僅是開播,只要客戶端功能是需要網絡請求,都可以使用網絡插件來自動化收集網絡包用于后續分析,未來將會擴展到更多的自動化測試場景中。

原文轉自:https://www.infoq.cn/article/lqU7uiwswPHRF1rpUP8e

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97