最近为了测试app极端网络环境的反馈结果,在网上找了很多资料,发现大多数关于Network Link Conditioner的使用安装比较旧,安装之后无法起到效果,所以重新整理了一份,建议Network Link Conditioner工具版本号与Xcode版本号保持一致
在Xcode4.1中有一个工具叫Network Link Conditioner,可以让用户模拟不同的网络连接和带宽,可供Mac和iOS开发者测试自己的程序在不同网络环境下的表现。
在Xcode4.3之后,此工具不再随Xcode工具提供,需要单独下载。在Xcode10中通过Xcode->Open Developer Tool->More Developer Tools…菜单
image.png
可进入Apple开发者下载中心,Network Link Conditioner包含在Hardware IO Tools中,但在Xcode7.3之后版本Hardware IO 包含在工具Additional Tools包中,点击下载。
image.png
下载安装后,可看到其中有一个Hardware,进入后就能见到Network Link Conditioner.prefPane文件。
image.png
image.png
点击运行Network Link Conditioner.prefPane后,Network Link Conditioner就会被添加到系统偏好设置的其他分类中。
image.png
image.png
点击打开,Network Link Conditioner界面为
image.png
在Profile中包含预置的几种网络环境,包含3G,DSL,Edge,Wifi,每种网络环境对应不同的上下行带宽,丢包率和网络延迟,DNS延迟。
image.png
还可以根据需要自定义不同的网络环境,点击左下角锁按钮输入系统密码解锁后,右侧Manage Profiles…就变为可用,点击后可进入管理Profiles窗口,在其中可定义自己需要的Profile.
image.png
把ON/OFF按钮滑动到ON,即启动了网络模拟器。
image.png
启动Network Link Conditioner就可以使用iOS模拟器测试APP在此种环境下的运行情况了。
在测试完毕时,记得停止Network Link Conditioner,Network Link Conditioners是对整个系统有效的,普通上网的速度也会被限制。
真机调试时模拟网速
真机调试时模拟网速更加方便,在iPhone设置里,选择开发者->Status 这个就是网速模拟,选择好模式记得选择Enable打开。
IMG_1673.jpg
IM
iOS系统有个模拟慢速网络测试的好帮手
刚进公司的时候,被分配在一个物流项目组负责iOS系统下App的测试。该App中有一个主要功能是车辆到达目的地的时候,需要在App里显示一个对应的状态并开始计时。测试过程中,总会碰到几次后台服务里单子的状态变了,但App里的单子依然停留在前一个状态,并且计时还不准确!在这个Bug被重复开关N次后,开发确定地说是网络问题,那么测试人员要怎么办,,怎样才能更加准确的了解在不同网络状况下用户使用App时的表现呢?这时候就需要来一次模拟不同网络环境下的App测试了。
常用的模拟弱网的第三方软件比如:Charles,Fiddler,NetworkEmulator Toolkit等。如果设备没有安装这些软件,那么对于iOS系统的设备来说还有一种方法,就是利用自带的“开发者”来模拟不同网络的测试。
这里简单介绍一下使用步骤:
打开iOS系统设备,进入 设置➔ 开发者➔ Network Link Conditioner(on)➔ Enable(on)
注意哦,如果设备的设置里没有找到“开发者”选项,那么需要将设备和一台Mac电脑相连接,然后在Mac上打开Xcode开发工具,此时设备的设置里会出现“开发者”这个选项。找开发童鞋帮忙下,连接下电脑,肯定就可以啦~~
图1:“开发者”入口
图2:打开网速模拟工具Network Link Conditioner
图3:打开功能
在Choose A Profile中可以选择模拟某种常见的网络情况。
图4:新增自定义网络环境
在测试时可以选择系统配置好的参数(100%Loss~Wi-Fi 802.11ac),也可以点击Add a profile根据自己的需求配置参数,设置完毕点击存储。在当前的网络环境下打开测试的App项目,就可以进行测试了。
综上所述,因这个工具可以自定义的配置很多参数,可以设置各种不同的网络状态,既不需要去配专门的硬件设备,也省去了下载、安装、设置(如果不会使用的话还得花时间先去学习使用方法)第三方软件的时间。而这个自带的工具,不需要那么复杂的操作,只需打开iOS设备,简简单单的几个步骤就可以模拟出想要的网络状况,对iOS下的App测试来说真的是个方便实用的方法。