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. 实现
(1) 安装 Network Link Conditioner
由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
下载:安装:进入Hardware文件夹,点击Network Link Conditioner.prefPane进行安装
结果:这就是设置和控制面板了
(2) MacBook切换到AP模式,提供热点
使用USB以太网接入Hub链接网线和mac设备
点击“系统偏好设置” ——》 “共享”进行如下设置
此部分内容网络上教程较多,如果不是很熟悉可以自行搜索“Mac怎么设置wifi热点,Mac做wifi热点”之类的内容。
(3) 测试以及抓包
以上两步完成之后,环境就准备好了,手机链接Mac提供的网络,另外在“Network Link Conditioner”面板中使用某一个或者自定义一个网络环境即可。
我使用wireShark进行抓包,成功,各种类型的协议一览无余。
网友评论