APP弱网测试

2023-11-05

APP弱网测试

一、网络测试的一般流程

step1:首先要考虑网络正常的情况

① 各个模块的功能正常可用

② 页面元素/数据显示正常 

step2:其次要考虑无网络的情况

① APP各个功能在无网络情况下是否可用

② APP各个页面之间切换是否正常

③ 发送网络请求时是否会导致闪退、卡死等异常情况

④ APP各个页面是否显示完整美观,未刷新的页面是否做了相应的提示和处理

⑤ 在无网络情况下数据是否会丢失

⑥ 无网络提示信息是否友好

step3:再次考虑弱网情况

① 弱网情况下APP是否针对请求做了超时处理

② 网络延迟的情况下,操作app进行数据同步、OTA升级是否会发生Crash、ANR等严重错误

③ 弱网情况下,APP请求回调未完成时,执行其他动作以及交互时,是否会出现APP闪退(如:驾考IOS开屏闪退)等异常。

④ 弱网情况下,原始数据是否出现丢失的情况(弱网下载时会出现丢包情况)

⑤ 弱网环境下,是否会出现请求堆积的情况

⑥ 弱网环境下,APP各个页面是否显示完整

⑦ 系统超时,提示信息是否清晰明确

⑧ 弱网情况下APP的响应时间是否在一个合理的时间范围内

⑨ 请求回调未完成--XXX项目XX难题攻克弹窗

⑩ 这个弹窗是服务器说了算,服务器知道该用户啥时候弹弹窗。若用户在做题页面时返回了,则该用户下次进入且在服务器缓存时间内,应该给出弹窗(产品逻辑:弹窗出现后用户必须看到才消失)

⑪ 请求堆积:水池注水排水问题

step4:最后考虑网络状态之间的转变

① 断开网络连接以后,操作APP各个功能是否正常

② 同步数据过程中,断开网络连接,APP是否出现异常情况

③ 传输数据过程中,网络由wifi切换到gprs,APP是否出现异常情况

④ 弱网环境下发送的请求是否在恢复网络以后出现重复提交的情况

tips:gprs---就是咱们通常所说的流量

二、背景介绍

弱网测试作为健壮性测试的重要部分,对于移动端的测试来说必不可少。

目前的网络并非完全的流畅WiFi,目前使用最多的是2G,3G,4G,且使用场景多变,如近地铁,上公交,进电梯,进山区等是的弱网测试显得尤为重要。

测试维度

 

弱网测试的思路

总结:

1、弱网测试主要进行特殊网络状态下的功能测试,同时关注用户体验。

2、弱网测试主要包括弱网功能测试、无网状态测试、网络切换测试等

三、弱网功能测试

① 这一部分主要是在各种非wifi网络环境下进行的功能测试,同时模拟高延时和高丢包的异常网络环境进行健壮性测试。

② 2G/3G/4G的网络可以通过使用电话卡移动/联通/电信等网络进行模拟,关注页面的响应时间、页面呈现是否完整一致等。

③ 高延迟和高丢包的网络环境需要借助工具来模拟,如Charles。

④ 弱网功能测试建议将整体的功能测试用例在弱网环境下进行一轮测试,相同模块下的功能可以分多个网络条件进行测试。这部分发现的问题可能会有:

  • 页面图片在弱网环境下加载不出来(图片加载逻辑需优化)
  • 需要模版的页面版式结构混乱(模版文件在弱网环境的加载需优化)
  • 页面响应时间较长没有任何显示(页面显示逻辑待优化、重试机制加入)

四、弱网UI测试

弱网情况下:

  • APP很可能出现UI刷新不及时或者不刷新的情况,此时就可能会导致呈现在用户面前的是一个残缺的页面;
  • 偶会也会导致出现页面UI元素错乱的情况(如:驾考vip页面);

五、无网状态测试

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

  • 断网情况下请求非本地数据的页面需要设定一定的时间等待上限,及时提示网络异常以及提示重试;
  • 断网情况下请求部分本地数据的页面需要观察本地数据的部分是否加载显示正常,待请求的部分是否符合交互给的缺省样式一致;
  • 断网情况下请求完全本地数据的页面是否显示正常。这里还需考虑本地数据存储的情况,有些需要联网后上报服务器的数据本地是否正确存储,联网后这些数据能否正常上报。
  • 无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,页面间跳转的显示,页面内功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常。

注:以驾考课件视频为例做个补充

  • 无网无缓存时做题页面不显示课件视频模块;
  • 无网有缓存,且在缓存时间内,点击视频时可以正常播放;

六、网络切换测试

这部分主要是进行几个不同网络场景的切换,包括:

wifi-2G/3G/4G、wifi-无网、2G/3G/4G-wifi、2G/3G/4G-无网、无网-2G/3G/4G、无网-wifi

主要关注页面的显示与交互,尤其:

  • 弱网到wifi
  • wifi到弱网

以上两种情况验证是否会有页面的crash以及显示的错乱、session是否一致、请求堆积处理等。

七、用户体验关注

弱网测试的目的就是尽可能保证用户体验,测试点如下:

(1)页面响应时间是否可接受,关注包括热启动、冷启动时间,页面切换,前后台切换,首字时间,首屏时间等。

(2)页面呈现是否完整一致

(3)超时文案是否符合定义,异常信息是否显示正常。

(4)是否会有超时重连

(5)安全角度:是否会发生dns劫持

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

热启动:已经启动过APP了,然后切换到后台,或者退出,但是这时候应用并没有完全退出,可能应用还有一些服务在后台启动

冷启动:就是之前没启动过APP

dns劫持:又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。常见的分为2种:网页劫持/运营商劫持

比如:输入www.baidu.com,结果打开了淘宝网,就说明百度的dns被劫持了;

Android驾考宝典进入vip页面时被劫持;

八、响应时间

  • 安卓手机一般超过5秒钟无响应就会报ANR的错误
  • ios手机响应时间过长也会报错
  • 2-5-10原则(或3-5-8):
  • 用户能够忍受的最佳响应时间是2秒以内;
  • 超过5秒无响应的话,一般性子比较急躁的用户很可能就会直接退出页面了;
  • 如果超过10秒无响应,很多人都会选择杀掉APP;
  • APP经常处于无响应或者响应时间过长的状态,会导致大批的用户转移到竞争对手的产品上。

九、异常测试

异常测试是指验证APP针对各种网络异常情况是否做出了容错处理,这里面包括:

① 异常提示信息

② 出错容错机制

③ 超时判断处理机制(代码级别)

④ 出错以后自动重连等

tips:

容错机制---简单点可理解为: 我快速点击多次,但是就响应一次

出错后重连---就是访问网络,没得到数据,在错误的地方重新访问网络。如:驾考VIP


 

十、弱网测试工具--Charles模拟慢速网络

 

在 Charles 的菜单上,选择 “Proxy”–>“Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。如右图1所示:

 如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

 进行这项设置后,我们会看到小红旗处于工作状态,如右图2

  ​  

PS:弱网、2G、3G建议的上下行速率如下,同时还可以控制丢包率的数据

      网络             上行               下行

      弱网               10                 30

      2G                 15                 50

      3G                384               2800

  

补充:了解下2G/3G网络

 

posted @ 2019-01-11 16:26 柳絮飘雪 阅读(...) 评论(...) 编辑 收藏
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

APP弱网测试 的相关文章

随机推荐

  • Gradle 7 ---版本依赖

    1 概述 1 1 特性 自动化的依赖管理有两个特性 明确依赖的版本 解决因传递性依赖带来的版本冲突 1 2 常用仓库 mavenLocal 本地 mavenCentral 公网 jcenter 公网 自定义maven仓库 nexus 1 3
  • 树莓派环境监控系统搭建(一)

    树莓派环境监控系统搭建 一 项目简介 使用树莓派和相关的观感器搭建系统 用以收集温度 湿度 而二氧化碳浓度保存至数据库中 同时在OLED屏幕上显示天气信息 温湿度 二氧化碳浓度 TVOC浓度 播报天气相关信息 系统功能 数码管显示当前时间
  • LeetCode第127题解析

    给定两个单词 beginWord 和 endWord 和一个字典 找到从 beginWord 到 endWord 的最短转换序列的长度 转换需遵循如下规则 每次转换只能改变一个字母 转换过程中的中间单词必须是字典中的单词 说明 如果不存在这
  • 2020-12-29 WARP SHUFFLE的大坑

    global void bcast int args int laneId threadIdx x 0x1f int value 31 laneId if threadIdx x lt 8 value args value shfl dow
  • SprinBoot使用PageHelper实现分页

    1 引入依赖
  • Windows 10搭建FTP服务器实现局域网文件共享

    1 安装 FTP服务器组件 打开 控制面板 单击 程序 单击 启动或关闭Windoes功能 在Internet information Services下勾选FTP服务和IIS相关服务 如下图所示 勾选完成后单击 确定 加载完成后重启电脑
  • Delphi结合LabelView进行条码打印

    使用LabelView软件的COM服务来对LabelView进行控制 即传递数据到LabelView的条码对象上 使我们可以自定义需要打印的条码数据 首先 导入类型库 在 Import Type Library 中选择LabelView O
  • 使用freemarker循环图片(附demo)

    使用freemarker循环图片 一 效果展示 word文档 今天重点讲解图片部分 基础数据展示不做讲解 要求对freemarker有一定的基础 详看使用Freemarker输出word文档到浏览器与本地 今天为什么要单独讲解图片循环呢 因
  • Linux操作系统:IO基础-文件I/O

    前言 文件I O又称为低级磁盘I O 遵循POSIX相关标准 在Linux系统中所有的I O 操作是通过读文件以及写文件的方式来完成的 通过文件I O读写文件时 每次操作都会执行相关系统调用 这样处理文件的好处是直接读写实际文件 坏处是频繁
  • 深度学习训练过程中的技巧深刻总结

    深度学习训练模型技巧 1 训练过程经常遇到的问题 1 1 损失值为nan 1 2 训练效果差 1 2 1 损失值很低 正确率很高 但miou很差 1 2 2 损失值来回变 准确率或者miou忽大忽小 1 2 3 损失值大于0 0001 1
  • DSTC10 赛道最佳论文揭晓 文心 PLATO 再获殊荣

    国际对话系统技术挑战赛DSTC The Dialog System Technology Challenge 作为全球人工智能顶级学术竞赛 由微软 卡内基梅隆大学的科学家于2013年发起 在对话领域具有极高的权威性和知名度 近日 第十届对话
  • C++ Primer Plus(第6版) 复习题汇总

    目录 10 对象和类 1 什么是类 2 类如何实现抽象 封装和数据隐藏 3 对象和类之间的关系 4 除了是函数之外 类函数成员与类数据成员之间的区别是什么 5 定义一个类来表示银行帐户 7 给出复习题5中的银行账户类的构造函数的代码 8 什
  • 2.26—— 问题 B: 回文日期

    题目描述 在日常生活中 通过年 月 日这三个要素可以表示出一个唯一确定的日期 牛牛习惯用8位数字表示一个日期 其中 前4位代表年份 接下来2位代表月份 最后2位代表日期 显然 一个日期只有一种表示方法 而两个不同的日期的表示方法不会相同 牛
  • 西米支付:支付二维码的简单介绍

    二维码支付从1 0到3 0时代的历史进程 实际上二维码技术被推出来已经有十多年了 这段悠久绵长的英雄无用武之地的时代属于二维码1 0时代 得益于互联网电子商务的飞速发展首先将二维码应用于支付并发扬光大的是两个第三方支付公司 支付宝 微信 这
  • 短作业优先调度算法C语言实现

    实验原理 短进程优先算法是以作业的长短来计算优先级 作业越短 其优先级越高 作业的长短是以作业所要求的运行时间来衡量的 在把短作业优先调度算法用于作业调度时 它将从外存的作业后备队列中选择若干个估计运行时间最短的作业 优先将它们调入内存运行
  • 类com.lu.servlet.HelloServlet不是Servlet

    tomcat10之后servlet依赖包名不是javax servlet 而是jakarta servlet 可以用以下两个依赖
  • vue当用户单击任何按钮时,只将该值设置为true,其他值为false

    最近在做卡片切换时遇到这样的问题 场景 当点击A时显示A的相关卡片信息 点击B时显示B的相关卡片信息 以此类推 思路 定义一个卡片状态对象 isCardState A false 利用点击按钮传item值做判断 如果相等显示即可 问题 点击
  • 如何创建美观的邮件模板并通过qq邮箱的SMTP服务向用户发送

    最近在写注册功能的自动发送邮箱告知验证码的功能 无奈根本没有学过前端 只有写Qt的qss基础 只好借助网页设计自己想要的邮箱格式 最终效果如下 也推销一下自己的项目ShaderLab 可运行ShaderToy上的大部分着色器代码 有学图形学
  • Spell 基于最长公共子序列的在线日志解析方法

    文章目录 01 日志模板挖掘 02 基于 LCS 的日志解析流程 2 1 日志键匹配查找 2 2 拆分与合并处理 2 2 1 拆分过程 2 2 2 合并过程 03 匹配查找优化 3 1 前缀树预过滤 3 2 倒排索引查找 04 Spell
  • APP弱网测试

    APP弱网测试 一 网络测试的一般流程 step1 首先要考虑网络正常的情况 各个模块的功能正常可用 页面元素 数据显示正常 step2 其次要考虑无网络的情况 APP各个功能在无网络情况下是否可用 APP各个页面之间切换是否正常 发送网络