专项测试--弱网络测试(IOS)

图片截图来自于 《移动App测试实战》

一、借助手机自带的网络状况模拟工具:这个方案主要针对IOS,对安卓的支持不是很好:

1、进入IOS系统中自带的开发者(Developer)选项, 注意:只有用于调试过的真机才能看到这个选项; 如下图,默认是隐藏的。

图片

(图1)

2、点进去之后能看到相关的具体设置,其中一项叫做”NETWORK LINK CONDITIONER“;

如下图,默认是关闭的。

图片

3、点击这个选项进入之后能看到具体的网络类型设置,如下图。 默认提供了几个常用profile供选择。点i图标进去之后能看到具体的参数设置,关于进/出的带宽和延迟,以及丢包和DNS延迟,也可以选择规则适用的协议类型。

图片

4、除了自带的几种网络状况之外,我们还可以选择最下面的”Add a profile...“,自定义我们想要的网络状况,如下图:

图片

5、用手机打开相应的APP进行弱网络情况下的功能测试

二、基于代理的弱网络的模拟

1、另一种比较通用的方法:通过网络代理的方式构造测试环境

2、主要思路:手机和PC/Mac电脑都连接在同一个WIFI,在电脑上开启代理软件,通过修改手机上的网络设置,将代理纸箱电脑上对应的代理的IP端口;

这种情况下,由于手机流量经过电脑,电脑上的网络状况模拟就会影响到实际的网络。这种方式的另一个类似做法就是在电脑上通过双网卡的方式自行建一个wifi热点,让手机直接连接这个热点。

3、就书中作者的经验,适用于Windows和Mac平台,将网络模拟工具跑在PC/Mac上,并打开代理软件,比如:Fiddler/Charles,然后手机连接同一个wifi热点,并在wifi的设置里把代理指向对应的PC/Mac

(I)Windows下的Network Delay Simular

1、工具是免费的,可以从网络下载。基本原理是安装时会添加一个新的网络驱动,进而控制网络状况。

使用界面简单,如下图:

图片

2、通过Flow Match Condition 部分的设定可以选择对哪些网络连接进行控制,包括本地和远程的IP段、协议类型和端口。

3、这样可以针对要测试的链路模拟网络状况,同时不影响电脑和手机上的其他软件正常使用

4、可以模拟的网络状况包括双向的带宽、网络延迟、丢包率等维度。配置好对应的参数,然后选择Save Flow就开始生效了,即可进行弱网络测试。

5、想要证明弱网络的条件是否生效:

一方面可以从App的响应情况看到差别;

另一方面可以在PC/Mac上抓包来看看具体的网络层的情况

如下图是一个简单的试验的结果,基于上图的参数,开启了上面的网络模拟之后,Wireshark抓包的结果可以看到,因为丢包产生了大量的TCP重传,Info字段显示TCP Retransimission的部分

图片

6、如果通过Follow TCP Stream观察某一个HTTP请求对应的整个TCP连接的过程,也能看到重传,乱序。

如下图:

图片

7、从响应延迟上看,很多也是超过一秒的,基于下面Time字段的相对时间戳,第一个用于简历连接TCP SYN 发出是33.019918s,在36.018776s经历了一次重传,而对应的SYM+ACK回来时间是38.468732s,另外,观察584号包的HTTP POST请求,以及对应的674号包的reponse也是超过了1s。对比网络状况模拟之前的情况,可以明显看到弱网络模拟确实生效了。

8、这时,我们可以操作APP,观察APP功能的情况,也可以观察日志看有没有异常情况发生

(II)Mac下的Network Link Conditioner

1、如下图:

图片

2、基本功能跟上面介绍的windows下的Network Delay Simulator类似

3、手机通过前面流量测试中提到的方式,代理连上Mac,同时打开代理和网络状况模拟程序,这里是Charles和Network Link Conditioner 的组合。下面我们尝试模拟不同的情况,并观察APP对应的接口层面的响应情况。

4、如下图所示是wifi情况,可以看出接口的延迟相对较小。

图片

5、3G网络的抓包情况:

图片

由上图可以看出带宽要低很多,而且网络延时设置到了100ms,从接口响应看,很多接口响应得到了500ms以上,个别达到了几秒。

6、2B网络的抓包情况:

图片

由此可以看到,带宽相比3G的带宽进一步降低,延迟也增大到400ms,这种情况下所有接口的响应都达到1.8s以上,个别数据量较大的请求都达到了10多秒。

7、在网络较差的情况,显示速度等体验方面肯定会有损失,这是无可避免的,但是也可以观察APP实际的行为,比如部分显示,或者提示加载进度等,也可以从产品和用户体验的角度来观察这种情况是否可以接受。这方面没有一个统一的标准,可能需要结合实际项目的情况,由产品经理和研发人员一起来判断。如果觉得体验不可接受,再进一步看是否在数据获取或界面渲染的逻辑上做赶紧。

8、以上的工具都可以帮助我们模拟弱网络的情况,实际中,我们通过这样的模拟发现了很多APP层面的问题,包括对异常处理不当导致的应用崩溃,以及各种应用体验方面的问题,工具本身使用的代价不大,但是发现的问题都非常有价值,所以这样的测试还是非常有必要的

9、严格来说,以上只是对弱网络情况的简单模拟,因为实际情况可能更加的多变和复杂。上面的模拟中,参数是固定的,而实际中肯定是多变的,另一方面,以上也没有包含网络类型切换,以及有网/无网的切换。

弥补这一部分的差异,可以通过实地的测试来进行。比如带上手机,装上被测应用,到电梯、地铁当场景下来测试

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值