為Android、iOS裝置搭建模擬丟包、慢速網路模擬環境

QJoyXue發表於2017-06-15

為Android、iOS裝置搭建模擬丟包、慢速網路模擬環境

1. 背景、目標、目的

(1) 背景:

我們在移動開發或者測試的時候,時常遇到在正常網路環境下的程式碼執行一切正常,一旦網路有抖動甚至網速較慢時,各種bug頻發,當然我們開發中必須要提前對異常進行設計,但是必要的測試還是很需要的。由於iOS的開發工具XCode已經具備此功能,重點在於Android裝置,當然我們的解決方案適用於各種移動裝置以來的行動網路測試。

(2) 目的:

不論是Android還是iOS裝置,連線到我們提供的模擬環境後,可以通過配置控制網路條件,滿足包括下行速度、下行丟包率、下行延遲、上行速度、上行丟包率、上行延遲、DNS延遲的設定、以及可抓包。

(3) 目標:

為移動裝置提供可以模擬丟包、慢速等網路條件的穩定可複用的網路環境。

2. 方案

通常的方案主要包括:1.Facebook網路環境模擬工具ATC、2.包括wireshark、Fiddler、Charles等抓包工具提供代理、3.模擬器、4.以及我們使用的以“Network Link Conditioner”為核心的方案。

個人經過試驗方案1太過複雜而且還需要特定版本的的無線路由器;方案2只能針對http、https進行,對於tcp、udp無效;方案3穩定性相容性都不高。

自然我們的方案4要優於1、2、3啦。進入正題。

3. 環境

  • [x] 必要:OSX裝置:MacBook等;
  • [x] 必要:USB乙太網接入HUB一臺、以及可以提供上網接入的網線;
  • [x] 必要:安裝XCode(我個人是8.3.2版本)
  • [x] 必要:Network Link Conditioner.prefPane
  • [x] 必要:移動裝置一臺,用來測試網路

4. 實現

由Apple官方提供:developer_apple,新版本此工具被整合到Additional_Tools_for_XcodeAdditional_Tools_for_Xcode_8.2,網上很多是使用XCode7.3以及之前的版本Hardware_IO_Tools_for_Xcode,務必確認安裝正確的版本,否則控制功能點選是無效的。

我是用的XCode version:8.3.2,選擇Additional_Tools_for_Xcode_8.2

下載:

為Android、iOS裝置搭建模擬丟包、慢速網路模擬環境

安裝:進入Hardware資料夾,點選Network Link Conditioner.prefPane進行安裝

為Android、iOS裝置搭建模擬丟包、慢速網路模擬環境

結果:這就是設定和控制皮膚了

為Android、iOS裝置搭建模擬丟包、慢速網路模擬環境

(2) MacBook切換到AP模式,提供熱點

使用USB乙太網接入Hub連結網線和mac裝置

為Android、iOS裝置搭建模擬丟包、慢速網路模擬環境

點選“系統偏好設定” ——》 “共享”進行如下設定

為Android、iOS裝置搭建模擬丟包、慢速網路模擬環境

此部分內容網路上教程較多,如果不是很熟悉可以自行搜尋“Mac怎麼設定wifi熱點,Mac做wifi熱點”之類的內容。

(3) 測試以及抓包

以上兩步完成之後,環境就準備好了,手機連結Mac提供的網路,另外在“Network Link Conditioner”皮膚中使用某一個或者自定義一個網路環境即可。

我使用wireShark進行抓包,成功,各種型別的協議一覽無餘。

為Android、iOS裝置搭建模擬丟包、慢速網路模擬環境

5. 參考

Mac模擬慢速網路 - Network Link Conditioner

Mac怎麼設定wifi熱點,Mac做wifi熱點

相關文章