iOS如何監聽弱網?


場景:

iOS中我們可能經常用到監聽網絡,不過大部分是監聽網絡的類型,即2G/3G/4G WIFI,是否連接網絡,然而測試人員對APP進行測試時候經常會有一個弱網測試,即在弱網環境下對APP進行測試,這個時候APP會出現各種問題,比如接口請求不到數據等問題,那么我們有沒有辦法像監聽網絡一樣去監聽弱網呢?

弱網測試:我們的經常用的抓包工具Charles就可以簡易的模擬弱網環境,而我們的真機也可以在調試時候模擬弱網

設置-->開發者-->Status-->Enable打開,然后選擇下面的每個選項,就可以模擬弱網了

思考1:

網上查了資料並沒有直接監聽弱網的資料,那么有什么其他辦法可以做到這一點呢?

這個時候我想到了終端的ping命令,對一個baidu.com的ping結果如下:

那么能不能在iPhone上去ping我們的服務器,通過ping的結果去判斷我們的網絡環境呢?不多說,嘗試一下。

Apple提供了一個系統的ping庫,有興趣的可以去看

https://developer.apple.com/library/content/samplecode/SimplePing/Listings/Common_SimplePing_m.html#//apple_ref/doc/uid/DTS10000716-Common_SimplePing_m-DontLinkElementID_4

我偷懶網上找了一個封裝好的三方庫STSimplePing,加入工程后進行測試結果如下:

正常網絡情況下:

將弱網模擬調至100% lose結果如下:

結果都能收集到,若通過Ping判斷網絡方案合理的話,那么我們可以通過時間和丟包率來判斷網絡情況

思考2:

參考文檔:http://www.cocoachina.com/ios/20160224/15407.html

分析了ReallyReachaAbility監控的原理,ReachaAbility監控網絡狀態的變化,ping判斷網絡是否真實連接及狀態,通過定時器時時判斷網絡狀態及真實的網絡連接情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM