在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/4G/5G/WiFi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。目前移动端产品的使用用户所处的网络并非完全流畅的网络环境,因移动端产品使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。毕竟考虑到各种场景的客户端展示及容错,能极大提升产品印象和用户体验。本文就和大家分享一下如何上手弱网测试,弱网测试工具的使用。
弱网测试作为健壮性测试的重要部分,对于移动端测试来说必不可少。从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的WiFi通常也会被纳入到弱网测试场景中。
这一部分主要是在各种不稳定的网络环境下进行的功能测试,同时模拟高延迟、高丢包的异常网络下进行健壮性测试。2G/3G/4G/5G的网络可以通过使用电话卡移动/联通/电信等网络进行模拟,关注游戏界面的响应时间、界面呈现是否完整一致等。
弱网功能测试建议将整体的功能测试用例在弱网环境下进行一轮测试,相同的模块下的功能可以分多个网络条件进行测试。这部分发现的问题可能会有:界面图片在弱网环境下加载不出来(这就需要对图片加载逻辑进行优化)、界面排版结构混乱(这就需要界面在布局是在弱网环境的加载进行优化)、界面长时间响应没有任何显示(这就需要在显示逻辑进行优化,以及引入重试机制)等。
无网状态测试则是在切换网络的情况下进行的测试,主要关注界面的显示、用户交互、本地数据的存储断网功能的使用等。经常该部分也需要与网络切换部分协同进行。通常来说:
断网情况下请求一个非本地数据时需要设定一定的时间等待上限,及时提示玩家网络异常以及重试机制;
断网情况下请求一个部分本地数据的界面需要观察本地数据的部分是否加载显示正常,待请求的部分是否符合用户交互给的缺省样式;
断网情况下请求一个完全本地数据的界面是否显示正常。这里还需要考虑本地数据存储的情况,有些需要联网后上报服务器的数据本地是否正确的存储,联网后这些数据能否正常上报。
无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,界面间跳转的显示,界面功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常。
这部分主要是进行几个不同网络场景的切换,包括WiFi到2G/3G/4G/5G、WiFi到无网、2G/3G/4G/5G到WiFi、无网到2G/3G/4G/5G、无网到WiFi等。主要关注页面的显示与交互、尤其是弱网到WiFi、WiFi到弱网的情况,是否会有crash以及显示的错乱、客户端服务器数据的一致性、请求堆积的处理等。
弱网测试的最重要的目的就是尽可能保证用户体验。关注的关键点包括:
界面响应时间是 否可接受,包括热启动、冷启动时间,界面切换,前后台切换,首字显示时间,首屏显示时间等;
界面呈现是否完整一致;
超时文案是否符合定义,异常信息是否显示正常;
是否有超时重连机制;
安全角度:登录ip更换频繁、单点登录异常等;
大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。
对于测试人员来说,要高效的进行弱网测试,就需要借助第三方工具搭建出各种弱网的环境,模拟一个弱网环境即可。
目前在测试移动设备上进行弱网络专项测试的方案主要有3种:
第一种:通过设备连接到PC上进行弱网络测试,比如Fiddler,Charles,Network Emulator Toolkit等。以Charles为例,基本思路是在PC上装一个Charles网络抓包工具,然后再将设备的网络代理到PC上,通过在PC上的Charles设置延时来进行弱网络模拟。
如下图所示:打开设置界面
进行常用的网速模拟设置
第二种:在专有服务器上构建弱网络WiFi,移动设备连接该WiFi进行弱网络测试,相关的技术方案有Facebook的ATC和腾讯的Wetest-WiFi。以(Augmented Traffic Control)ATC为例,原理实际是利用了linux流量控制系统,通过纯Python的网络库pyroute2调用netlink的API控制,它是搭建在Linux服务端的Web服务,通过移动设备访问web服务来选择测试的网络环境。
如下图所示:打开Web网页进行网络测试环境选择
第三种:以独立 App 的方式,为用户提供弱网络模拟服务。比如腾讯 wetest 服务平台推出的弱网测试工具QNET,在Android设备上直接安装使用。
如下图所示:用户根据自己的测试需求自定义弱网参数模板
第一种通过设备连接到PC上进行弱网络测试的抓包工具Charles、Fiddler。
优点:抓包工具PC端安装方便,支持网络协议抓包;根据自己的测试需求自定义弱网参数,配置更为灵活;支持多系统平台。
缺点:移动设备网络代理连接PC时需要安装相应证书,较麻烦;Fiddler不支持丢包、抖动等弱网环境。
第二种在专有服务器上构建弱网络WiFi的方式。
优点:在手机上通过Web界面就可以随时切换不同的网络环境;多个手机可以连接到同一个WIFI下,相互之间模拟的网络环境各不影响。
缺点:搭建成本高,需要准备支持AP模式且有驱动的网卡和Linux服务器,有专门的技术人员支持;切换到网络模拟界面改参数,然后再切回被测APP,影响被测APP的操作连贯性。
第三种以独立 app 的方式提供弱网络模拟服务。
优点:安装简便,应用界面简洁易上手;支持用户根据自己的测试需求自定义弱网参数模板,有比较好的灵活性。
缺点:目前只支持Android平台设备。
以上各方案都是比较成熟的弱网测试工具的使用,可根据实际情况进行选择。
下方是不同网络环境下速度的图片,测试时可参照设置:
PS:
我们是行者AI,我们在“AI+游戏”中不断前行。
快来【公众号 | xingzhe_ai】,和我们讨论更多技术问题吧!