咱們在移動開發或者測試的時候,時常遇到在正常網絡環境下的代碼運行一切正常,一旦網絡有抖動甚至網速較慢時,各類bug頻發,固然咱們開發中必需要提早對異常進行設計,可是必要的測試仍是很須要的。因爲iOS的開發工具XCode已經具有此功能,重點在於Android設備,固然咱們的解決方案適用於各類移動設備以來的移動網絡測試。html
不管是Android仍是iOS設備,鏈接到咱們提供的模擬環境後,能夠經過配置控制網絡條件,知足包括下行速度、下行丟包率、下行延遲、上行速度、上行丟包率、上行延遲、DNS延遲的設置、以及可抓包。網絡
爲移動設備提供能夠模擬丟包、慢速等網絡條件的穩定可複用的網絡環境。app
一般的方案主要包括:1.Facebook網絡環境模擬工具ATC、2.包括wireshark、Fiddler、Charles等抓包工具提供代理、3.模擬器、4.以及咱們使用的以「Network Link Conditioner」爲核心的方案。tcp
我的通過試驗方案1太過複雜並且還須要特定版本的的無線路由器;方案2只能針對http、https進行,對於tcp、udp無效;方案3穩定性兼容性都不高。工具
天然咱們的方案4要優於一、二、3啦。進入正題。開發工具
由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設計
下載:3d
安裝:進入Hardware文件夾,點擊Network Link Conditioner.prefPane進行安裝
代理
結果:這就是設置和控制面板了
使用USB以太網接入Hub連接網線和mac設備
點擊「系統偏好設置」 ——》 「共享」進行以下設置
此部份內容網絡上教程較多,若是不是很熟悉能夠自行搜索「Mac怎麼設置wifi熱點,Mac作wifi熱點」之類的內容。
以上兩步完成以後,環境就準備好了,手機連接Mac提供的網絡,另外在「Network Link Conditioner」面板中使用某一個或者自定義一個網絡環境便可。
我使用wireShark進行抓包,成功,各類類型的協議盡收眼底。