一、弱网测试的思路篇
总结了下(如上图所示),弱网测试主要进行特殊网络状态下的功能测试同时关注用户体验,具体来说,弱网测试包括弱网功能测试、无网状态测试、网络切换测试等,测试的同时关注用户体验的诸多方面。
1.弱网功能测试
这一部分主要是在各种非wifi网络环境下进行的功能测试,同时模拟高延时和高丢包的异常网络环境进行健壮性测试。2G/3G/4G的网络可以通过使用电话卡移动/联通/电信等网络进行模拟,关注页面的响应时间、页面呈现是否完整一致等。高延迟和高丢包的网络环境需要借助工具来模拟,在windows环境下可以使用fiddler和network emulator for windows toolkit来模拟,在mac环境下则可以使用charles和Xcode自带的开发环境网络异常模拟工具进行。工具的使用在工具篇具体介绍。
弱网功能测试建议将整体的功能测试用例在弱网环境下进行一轮测试,相同模块下的功能可以分多个网络条件进行测试。这部分发现的问题可能会有:页面图片在弱网环境下加载不出来(图片加载逻辑需优化)、需要模版的页面版式结构混乱(模版文件在弱网环境的加载需优化)、页面响应时间较长没有任何显示(页面显示逻辑待优化、重试机制加入)等。
2.无网状态测试
无网状态测试则是在切段网络的情况下进行的测试,主要关注页面的显示与交互、本地数据的存储、断网功能的使用等,经常该部分也需要与网络切换部分协同进行。通常来说,(1)断网情况下请求一个非本地数据的页面需要设定一定的时间等待上限,及时提示网络异常以及提示重试;(2)断网情况下请求一个部分本地数据的页面需要观察本地数据的部分是否加载显示正常,待请求的部分是否符合交互给的缺省样式一致;(3)断网情况下请求一个完全本地数据的页面是否显示正常。这里还需考虑本地数据存储的情况,有些需要联网后上报服务器的数据本地是否正确存储,联网后这些数据能否正常上报。
无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,页面间跳转的显示,页面内功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常。
3.网络切换测试
这部分主要是进行几个不同网络场景的切换,包括wifi-2G/3G/4G、wifi-无网、2G/3G/4G-wifi、2G/3G/4G-无网、无网-2G/3G/4G、无网-wifi等。主要关注页面的显示与交互,尤其是弱网到wifi,wifi到弱网的情况,是否会有页面的crash以及显示的错乱、session是否一致、请求堆积处理等。
4.用户体验关注
弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:
(1)页面响应时间是否可接受,关注包括热启动、冷启动时间,页面切换,前后台切换,首字时间,首屏时间等。
(2)页面呈现是否完整一致
(3)超时文案是否符合定义,异常信息是否显示正常。
(4)是否会有超时重连
(5)安全角度:是否会发生dns劫持、登录ip更换频繁、单点登录异常等。
(6)大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。
二、弱网测试的工具篇
在安卓产品测试的过程中,使用到的弱网测试工具主要是fiddler模拟网络延迟,以及network emulation for windows toolkit模拟网络丢包场景。MAC环境下的charles等抓包工具的实现原理是相同的。这里主要介绍下安卓弱网测试场景下使用到的工具。
1.fiddler
fiddler主要是使用Rules->Performance->Simulate Modem Speeds功能进行的网络延迟模拟,点击Rules->Customize Rules进行设置,打开自定义脚本编辑器,如下图所示:
这里通过计算上行和下行的网络延迟时间,可以模拟出想要的网络效果。利用 (1KB/下载速度)x1000 = 要delay的毫秒数 来计算。比如我们要模拟2G的网络。2G网络上行和下行的网络速度如下图所示:
设置完成后,在fiddler里将Rules->Performance->Simulate Modem Speeds选中即可使设置生效。
2.Network Emulation for Windows Toolkit
fiddler只能设置延迟,无法进行丢包的设置。在windows上有个简单易用的工具Network Emulation for Windows Toolkit可以用来设置网络丢包情况。设置丢包有两个关键步骤,一是设置电脑网络,二是将移动设备接入电脑共享的网络。详细看下每个步骤:
(1)设置电脑网络
工具简单界面如下所示:
接着点击Configuration->New Link新增一条链路,此时界面显示如下:
我们没有对网络做任何限制,此时网络是畅通的,ping一下看:
果然没有任何丢失,且无超时发生。
此时我们设置网络丢包,在新建链路点击右键,选择Upstream设置上行网络。这里我们设置了随机丢包率为40%:
同理也可以设置下行网络。设置完成后要点击Action->Start开始使设置生效。生效后我们再来ping一下网络看看:
可以看到此时有丢包和超时发生了。
除了设置随机丢包率,我们也可以设置周期丢包率、引入错误等网络异常情况。甚至也可以设置延时。总之该工具在弱网测试中可用性还是很强。
來源:简书