• 12
  • 12
分享
  • APP专项测试-弱网测试——软件测试圈
  • 饭团🍙 2021-01-21 10:21:33 字数 2918 阅读 3168 收藏 12

       在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/4G/5G/WiFi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。目前移动端产品的使用用户所处的网络并非完全流畅的网络环境,因移动端产品使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。毕竟考虑到各种场景的客户端展示及容错,能极大提升产品印象和用户体验。本文就和大家分享一下如何上手弱网测试,弱网测试工具的使用。

1. 什么是弱网测试?

       弱网测试作为健壮性测试的重要部分,对于移动端测试来说必不可少。从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的WiFi通常也会被纳入到弱网测试场景中。

6.png

       1.1 弱网的功能测试

       这一部分主要是在各种不稳定的网络环境下进行的功能测试,同时模拟高延迟、高丢包的异常网络下进行健壮性测试。2G/3G/4G/5G的网络可以通过使用电话卡移动/联通/电信等网络进行模拟,关注游戏界面的响应时间、界面呈现是否完整一致等。

       弱网功能测试建议将整体的功能测试用例在弱网环境下进行一轮测试,相同的模块下的功能可以分多个网络条件进行测试。这部分发现的问题可能会有:界面图片在弱网环境下加载不出来(这就需要对图片加载逻辑进行优化)、界面排版结构混乱(这就需要界面在布局是在弱网环境的加载进行优化)、界面长时间响应没有任何显示(这就需要在显示逻辑进行优化,以及引入重试机制)等。

       1.2 无网状态测试

       无网状态测试则是在切换网络的情况下进行的测试,主要关注界面的显示、用户交互、本地数据的存储断网功能的使用等。经常该部分也需要与网络切换部分协同进行。通常来说:

       断网情况下请求一个非本地数据时需要设定一定的时间等待上限,及时提示玩家网络异常以及重试机制;

       断网情况下请求一个部分本地数据的界面需要观察本地数据的部分是否加载显示正常,待请求的部分是否符合用户交互给的缺省样式;

       断网情况下请求一个完全本地数据的界面是否显示正常。这里还需要考虑本地数据存储的情况,有些需要联网后上报服务器的数据本地是否正确的存储,联网后这些数据能否正常上报。

       无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,界面间跳转的显示,界面功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常。

       1.3 网络切换测试

       这部分主要是进行几个不同网络场景的切换,包括WiFi到2G/3G/4G/5G、WiFi到无网、2G/3G/4G/5G到WiFi、无网到2G/3G/4G/5G、无网到WiFi等。主要关注页面的显示与交互、尤其是弱网到WiFi、WiFi到弱网的情况,是否会有crash以及显示的错乱、客户端服务器数据的一致性、请求堆积的处理等。

       1.4 用户体验关注

       弱网测试的最重要的目的就是尽可能保证用户体验。关注的关键点包括:

       界面响应时间是 否可接受,包括热启动、冷启动时间,界面切换,前后台切换,首字显示时间,首屏显示时间等;

       界面呈现是否完整一致;

       超时文案是否符合定义,异常信息是否显示正常;

       是否有超时重连机制;

       安全角度:登录ip更换频繁、单点登录异常等;

       大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。

       2. 如何做弱网测试?

       对于测试人员来说,要高效的进行弱网测试,就需要借助第三方工具搭建出各种弱网的环境,模拟一个弱网环境即可。

       2.1 弱网工具介绍

       目前在测试移动设备上进行弱网络专项测试的方案主要有3种:

       第一种:通过设备连接到PC上进行弱网络测试,比如Fiddler,Charles,Network Emulator Toolkit等。以Charles为例,基本思路是在PC上装一个Charles网络抓包工具,然后再将设备的网络代理到PC上,通过在PC上的Charles设置延时来进行弱网络模拟。

       如下图所示:打开设置界面

1.jpg

       进行常用的网速模拟设置

2.jpg

       第二种:在专有服务器上构建弱网络WiFi,移动设备连接该WiFi进行弱网络测试,相关的技术方案有Facebook的ATC和腾讯的Wetest-WiFi。以(Augmented Traffic Control)ATC为例,原理实际是利用了Linux流量控制系统,通过纯Python的网络库pyroute2调用netlink的API控制,它是搭建在Linux服务端的Web服务,通过移动设备访问web服务来选择测试的网络环境。

如下图所示:打开Web网页进行网络测试环境选择

3.jpg

       第三种:以独立 app 的方式,为用户提供弱网络模拟服务。比如腾讯 wetest 服务平台推出的弱网测试工具QNET,在Android设备上直接安装使用。

       如下图所示:用户根据自己的测试需求自定义弱网参数模板

4.jpg

       2.2 弱网工具的优缺点对比

       第一种通过设备连接到PC上进行弱网络测试的抓包工具Charles、Fiddler。

       优点:抓包工具PC端安装方便,支持网络协议抓包;根据自己的测试需求自定义弱网参数,配置更为灵活;支持多系统平台。

       缺点:移动设备网络代理连接PC时需要安装相应证书,较麻烦;Fiddler不支持丢包、抖动等弱网环境。

第二种在专有服务器上构建弱网络WiFi的方式。

       优点:在手机上通过Web界面就可以随时切换不同的网络环境;多个手机可以连接到同一个WIFI下,相互之间模拟的网络环境各不影响。

       缺点:搭建成本高,需要准备支持AP模式且有驱动的网卡和Linux服务器,有专门的技术人员支持;切换到网络模拟界面改参数,然后再切回被测APP,影响被测APP的操作连贯性。

第三种以独立 app 的方式提供弱网络模拟服务。

       优点:安装简便,应用界面简洁易上手;支持用户根据自己的测试需求自定义弱网参数模板,有比较好的灵活性。

       缺点:目前只支持Android平台设备。

       以上各方案都是比较成熟的弱网测试工具的使用,可根据实际情况进行选择。

       下方是不同网络环境下速度的图片,测试时可参照设置:

5.jpg


作者:行者AI

原文链接:https://blog.csdn.net/suiyuejian/article/details/111356267#comments_14677516

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • Web 应用程序的动态、快速变化和关键业务的重要性不断挑战传统自动化测试和测试框架的极限。 本文讨论了最常遇到的关键挑战,以及如何帮助简单地或自动地应对这些挑战。测试覆盖率测试覆盖率是通过测试验证的重要指标之一。当人们表示他们在构建测试覆盖率方面遇到挑战时,通常意味着他们没有足够的资源来足够快地编写测试以跟上测试需求的增长。解决挑战的尝试通常涉及招更多人活着将上线时间推迟,通常来说几乎不可能有立竿见影的解决方案。低代码工具可以通过最小化复杂性和消除特定技能的门槛来帮助加速测试。与记录和回放的早期工具功能相比,现代主流的工具框架捕获测试用例更容易访问、更准确、更稳定。AI 驱动的工具有助于对被测...
            0 0 1072
            分享
          • 简介有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理。现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是 json 格式的,我们在做判断时候,往往只需要提取其中几个关键的参数就行,这时候我们就需要 json 来解析返回的数据了。首先来说一下笔者为何要单独写这么一篇,原因是:python 里面 bool 值是 True 和 False,json 里面 bool 值是 true和 false,并且区分大小写,这就尴尬了,明明都是 bool 值。在python里面写的代码,传到json里,不用说肯定识别不了,所...
            0 1 2369
            分享
          • 最近做了一个版本,是数据迁移,我们的一项核心业务,简历数据保存,原先使用的存储方式是mongodb,但是后来发现这种方式不利于数据关联,不好开展后续的一些业务开发,于是我们进行拆表,将简历数据拆成一个主表和好几个附表。先看下mongodb的数据结构,再对比下mysql的数据结构,可以发现:由一张aunts表拆成了六张表uc_aunt_resume  主表uc_aunt_resume_ext 扩展表uc_aunt_resume_attach 图片附件表uc_aunt_resume_working_experiences  工作经历uc_aunt_...
            1 1 13835
            分享
          •   分布式搜索分析,即ES。在之前的文章《掌握2个小工具,轻松解决大数据/数据库测试!》中,笔者介绍了elasticsearch-head和elasticsearch-sql两个工具,前者具有可视化、操作简单、能够完成es基本管理等特点,后者能够直接将一些基本mysql查询语句翻译为es语句进行查询,两者各具特色。  但随着对es的了解不断深入,发现了一款新的比较好用的es工具——cerebro。本文将从对比的角度出发,介绍cerebro的基本功能和用法,以及与elasticsearch-head和elasticsearch-sql对比,各自的优缺点。  cerebro介绍  安装方式  ce...
            0 0 1138
            分享
          •   刷脸支付,刷脸进站,刷脸打卡,一“脸”走天下的时代悄然来临。人脸识别的技术让人们的生活告别繁琐,如何验证人脸识别技术的功能正确性、安全性、识别率等关键问题,在测试领域也逐渐成为至关重要的课题。本文将结合实际工作中的探索与总结,阐述如何针对人脸识别技术开展测试。  一、什么是人脸识别?  人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术,用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术。人脸识别技术分为人脸检测,人脸跟踪,人脸比对三个部分。通过人脸检测可以在复杂的背景和场景下判断是否存在活体面像,并将其分离出...
            14 15 1216
            分享
      • 51testing软件测试圈微信