1、为什么要做弱网测试
当前APP网络环境比较复杂,网络制式有2G、3G、4G网络,还有越来越多的公共Wi-Fi。不同的网络环境和网络制式的差异,都会对用户使用app造成一定影响。
另外,当前app使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。
2、如何做弱网测
1、SIM卡的网络切换:手机-设置-移动网络设置-网络类型选择

2、具体弱网场景测试,常见场景包括:地铁/巴士、电梯、楼梯间、停车场
3、使用虚拟机模拟网络速度,如用树莓派搭建的弱网测试仪
4、使用软件进行网络代理,模拟不同的网络带宽、延时率、丢包率
3、弱网模拟常用工具
①fiddler主要用来抓包定位bug
②Charles
抓包原理:通过控制发送数据或接收数据的大小来限制网络的上传和下载
Charles测试配置步骤:
首先,打开Charles,在Throttle Settings中设置网络状况,点击proxy—》throttling settings
勾选【enable throttling】使得限制网速可用,相当于开启了限制网宿的功能
关于网速的选择:
概念介绍:Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(最大传输单元)
3G:300k-2Mbps左右
2.5G(GPRS)一般在100kbps
2G(GSM)一般在5-9kbps
如果不习惯自定义设置带宽等,可直接在Throttle Preset下拉列表中选择,按照顺序,网速逐渐提升
只对某地址的请求进行弱网测试,勾选【only for selected hosts】
4、常见错误现象
1、用户登录应用时下载初始化大数据,下载过程中因网速太慢点击取消重新登录,数据初始化完成后出现重复,导致数据不一致
原因:数据下载过程中,下载失败后,未进行数据回滚,中止后重新下载,出现数据重复
解决:通过事务处理数据下载逻辑,可以是下载失败后,应用本地数据库进行数据回滚
2、用户点击数据上传,数据上传过程中网络弱或不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,造成脏数据
3、原因:数据上传过程中,由于失败重传机制,会出现连续2次写操作,并且未做唯一识别处理
解决方案:根据数据特性,对可能造成脏数据的地方,通过关键字段,例如创建时间,key-value值等生成hash值,标记记录唯一性,即数据写入时,检查hash键师傅存在,如果存在不在新增
4、在弱网环境下,用户输入用户名和密码点击登录,应用链接超时返回用户名和密码错误提示
原因:在弱网环境下的连接超时后,按照业务逻辑处理,导致返回超时异常
解决方案:弱网连接超时后,检查应用本地数据库是否有用户登录信息,若存在,获取本地用户信息登录
5、在弱网环境下,用户输入用户名和密码点击登录,登录过程中应用崩溃并闪退
原因:弱网环境下数据下载超时,加载数据严重依赖于后来的异步加载,数据还没来得及返回,应用跳转到下个activity,导致崩溃
解决:健壮数据加载流程,通过标记后台数据下载状态加载界面,依赖数据下载完成后,再进行页面跳转
6、弱网环境下,用户请求页面响应时间较长,等待的过程中页面部分控件仍然可以操作,当用户点击控件时,出现闪退现象
原因:没有对数据加载流程进行判断,直接暴露控件可控,当出现依赖数据的控件操作时,没有再数据返回前做兼容处理
解决:再数据加载过程中,设置页面对外暴露的控件为“不可操作”,当数据加载完再释放
7、弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新的关键字并发送请求,等待搜索结果返回后,当期结果页被之前的关键字搜索结果刷新覆盖
原因:中间的请求返回较慢,显示最终的结果后,之前的请求返回的数据应不做处理,客户端经常做一种处理,请求对象发送返回失败,客户端会重试,请求必须是异步进行的,此时可 能会出现重试失败,仍然一直在发请求,重试策略有问题
解决:对异步请求未完成的任务进行cancel
8、弱网下,页面加载过程中程序闪退
原因:webview超时处理未在UI线程。Toast、关闭页面等操作需要再UI线程。
9、302跳转页面,达到内置超时阀值后,webview自动关闭
原因:业务员有页面加载超市自动关闭的逻辑,超时机制未考虑302场景
5、测试要点

应用
1.场景:互联网金融APP,申购流程中创建订单后是否支付成功,用户关注度最高(涉及扣费)。
测试点:弱网环境,创建订单失败,用户关注是否被扣费;创建订单成功后支付失败,再次支付是否重复扣费等。
2.场景:弱网环境下直至超时,ui界面友好&app是否稳定
测试点:弱网环境直至超时时,判定为断网专题,UI界面和提示友好(若容错机制主要是考虑弱网情况下带来的不稳定,常见的问题是:loading超时导致ANR :application not respanding)or crash
3.场景:断网后环境下,是否自动重发请求
测试点:断网后恢复网络,是否堆积网络请求(目前来说 理财模块 当10s左右无返回 则会重发请求),此时请求和返回正常情况下,是否出现异常情况。比如1次支付操作,断网后堆积多个支付请求,恢复网络后因堆积多个支付请求,是否完成多次支付。
4.场景:微信希望在线升级某些内容,会自动监听用户是否插着电 or 连着wifi,一旦监听符合上述场景,APP自动升级
测试点:
1)插电场景 确保升级过程中,耗电不会导致手机低电量甚至没电。
2)wifi场景,确保升级过程中,流量消耗不会使用用户话费中流量包,不会导致因消耗话费流量伤害用户体验
6、网络测试的一般流程
step1:首先要考虑网络正常的情况
① 各个模块的功能正常可用
② 页面元素/数据显示正常
step2:其次要考虑无网络的情况
① APP各个功能在无网络情况下是否可用
② APP各个页面之间切换是否正常
③ 发送网络请求时是否会导致闪退、卡死等异常情况
④ APP各个页面是否显示完整美观,未刷新的页面是否做了相应的提示和处理
⑤ 在无网络情况下数据是否会丢失
⑥ 无网络提示信息是否友好
step3:再次考虑弱网情况
① 弱网情况下APP是否针对请求做了超时处理
② 网络延迟的情况下,操作app进行数据同步、OTA升级是否会发生Crash、ANR等严重错误
③ 弱网情况下,APP请求回调未完成时,执行其他动作以及交互时,是否会出现APP闪退(如:驾考IOS开屏闪退)等异常。
④ 弱网情况下,原始数据是否出现丢失的情况(弱网下载时会出现丢包情况)
⑤ 弱网环境下,是否会出现请求堆积的情况
⑥ 弱网环境下,APP各个页面是否显示完整
⑦ 系统超时,提示信息是否清晰明确
⑧ 弱网情况下APP的响应时间是否在一个合理的时间范围内
⑨ 请求回调未完成–XXX项目XX难题攻克弹窗
⑩ 这个弹窗是服务器说了算,服务器知道该用户啥时候弹弹窗。若用户在做题页面时返回了,则该用户下次进入且在服务器缓存时间内,应该给出弹窗(产品逻辑:弹窗出现后用户必须看到才消失)
⑪ 请求堆积:水池注水排水问题
step4:最后考虑网络状态之间的转变
① 断开网络连接以后,操作APP各个功能是否正常
② 同步数据过程中,断开网络连接,APP是否出现异常情况
③ 传输数据过程中,网络由wifi切换到gprs,APP是否出现异常情况
④ 弱网环境下发送的请求是否在恢复网络以后出现重复提交的情况

APP测试(四)弱网测试相关推荐

  1. app性能测试与弱网测试

    1. 性能测试 Android的app性能测试包括的测试项比如:  1.资源消耗  2.内存泄露  3.电量功耗  4.耗时  5.网络流量消耗  6.移动终端相关资源利用率  7.帧率  8.渲染等 ...

  2. Jmeter 压力测试、并发测试、弱网测试

    jmeter常用测试元件 测试计划:默认 线程组:设置并发数.并发时间.请求循环次数 采样器(simple):较常用HTTP请求.JDBC Request.Soap/XML - RPC Request ...

  3. ios弱网测试_弱网测试IOS

    标签: IOS测弱网非常方便,在设置-开发者-NETWORK LINK CONDITIONER的Status 进入后可以看到IOS自带了100%LOSS.3G.WiFi等常见场景 可以点击图标i进行查 ...

  4. App专项测试之弱网测试

    转载 https://blog.csdn.net/TestingGDR/article/details/83059415 转载于:https://www.cnblogs.com/hyzhang/p/1 ...

  5. 软件测试之——关于APP弱网测试

    一.网络测试的一般流程 step1:首先要考虑网络正常的情况① 各个模块的功能正常可用② 页面元素/数据显示正常 step2:其次要考虑无网络的情况① APP各个功能在无网络情况下是否可用② APP各 ...

  6. APP专项测试-弱网测试

    在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/4G/5G/WiFi等多种手机网络连接方式.不同的协议.不同的制式.不同的速率,使移动应用运行的场景更加丰富.目前移动端产品的使用用 ...

  7. 什么是App稳定性测试?什么是App弱网测试?

    App稳定性测试? 由于app软件是安装在手机的操作系统之上的,为了保证app能够在长时间内运行操作不会出问题,所以需要做稳定性测试,稳定性测试需要用到monkey工具,monkey工具是基于命令行的 ...

  8. fiddler everywhere手机抓包_基于移动端抓包使用Fiddler模拟弱网测试

    随着移动互联网的发展,移动端测试工作也提上日程,那移动互联网测试与web测试有什么不一样?首先它们架构不一样,再者基于的场景不一样,PC端网络基本固定宽带,而移动互联的网络测试一般分为:2G.3G.4 ...

  9. 弱网测试及工具对比(Fiddler/Charles/NEWT/Clumsy/ATC/WANem/QNET)

    1.什么是弱网测试? 弱网测试主要就是对带宽.丢包.延时等进行模拟弱网环境. 衡量网络性能好坏的几个指标: 带宽(吞吐量):单位时间内传输的数据量,单位通常是:每秒比特数:bps.带宽反映了网络的传输 ...

  10. 手游测试之《弱网测试》

    weimjsam手游测试之<弱网测试> 由于大部分手游面对的用户群的网络连接情况不同,主要在2G/3G/4G及公共WIFI的网络连接下,在公共场所:地铁/电梯/地下室等信号差的地方进行游戏 ...

最新文章

  1. Windows下Git的安装
  2. OS / Linux / Ubuntu 创建应用的快捷方式
  3. 使用wireshark以及filddler配合抓去手机端的TCP以及HTTP请求
  4. C#黔驴技巧之去重(Distinct)
  5. app vue 真机运行_使用 HBuilder 将 Vue 项目打包成手机 App
  6. Hibernate Query 的 list 和iterate方法缓存的区别
  7. 【离散数学】二元关系的性质
  8. vue搭建后可以改下全局配置
  9. 关于发布WP 8.1应用信息不匹配问题的解决办法
  10. CSS学习总结(6)——定位与布局
  11. Focal Loss 和 LightGBM 多分类应用-python实现
  12. 决策树准确率低原因_决策树算法
  13. [C#]六十甲子纳音WM版 v2.1 By:LESLIE
  14. 网易云通信 java 登录_Java接入网易云信工具类
  15. php 微信小程序签到功能,微信小程序每日签到
  16. 上学期间你收到最感动的小纸条是什么?
  17. POJ 1616 Harmonic Periods 笔记
  18. 【影评】海贼王:855
  19. ubuntu 下最简单的歌词软件osdlyric (with banshee)
  20. 面试老大难的数据库缓存一致性问题

热门文章

  1. CSS3实现动画-飞翔的小鸟
  2. 产品外观设计成本的组成,你知道吗?
  3. 取出list集合的数据
  4. Python爬取城市天气数据,并作数据可视化
  5. html中div自适应代码,CSS+DIV自适应布局
  6. 用cmd登录mysql怎么避免看见密码_命令行登录防止MySQL密码泄露的几个小妙招。...
  7. 根据国务院2019年劳动节假期安排五一放假四天 免费节假日api第一时间调整
  8. EMQX 入门教程③——默认端口、端口策略和端口修改
  9. 基于STM32实现OLED滚动显示
  10. Numpy中sum函数的使用方法(Python自带sum函数)