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进行抓包,成功,各种类型的协议一览无余。

5. 参考

Mac模拟慢速网络 - Network Link Conditioner

Mac怎么设置wifi热点,Mac做wifi热点

更多相关文章

  1. Android(安卓)刘海屏幕适配方案简析
  2. 关于android安装sdk时找不到jdk的解决办法
  3. Android(安卓)不得不说的VideoView的一些坑及其解决方案
  4. macOS中配置Flutter开发环境(使用AndroidStudio开发)傻瓜版教程
  5. android和ios,音频互通方案
  6. 资深Android研发全面总结:Flutter遇到的那些坑
  7. 如何脱离Android源码环境编译aapt
  8. android的 网络下载和数据持久化
  9. 【react-natvie】react-native Android(安卓)webview下h5使用rem

随机推荐

  1. 阿里高并发Netty开源框架,撸完人已猝!!!
  2. 深度学习-3D点云实战系列
  3. K8S部署API网关Kong
  4. 预测UI设计师未来发展方向
  5. 跟我自学linux第一天面试作业题
  6. 你见过哪些令你瞠目结舌的 JavaScript 代
  7. 2021整理面试常问题目带答案
  8. 自己期望薪资为啥会打折扣
  9. 基于S.M.A.R.T.的磁盘健康监控
  10. HMS Core 5.1.0 版本发布公告