精华内容
下载资源
问答
  • 【背景】弱网测试,属于健壮性测试内容。随着国内移动端迅猛发展,大大增加用户碎片化使用移动端概率。想象一下,用户在地铁里,巴士上,甚至是电梯,车库等场景使用APP,我们就需要针对这些场景的弱网环境下,...

    在这里插入图片描述
    【背景】弱网测试,属于健壮性测试的内容。随着国内移动端迅猛发展,大大增加用户碎片化使用移动端的概率。想象一下,用户在地铁里,巴士上,甚至是电梯,车库等场景使用APP,我们就需要针对这些场景的弱网环境下,验证出现丢包、延时软件的处理机制,避免因用户体验不友好造成用户的流失。
    1.用户体验APP使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易伤害用户体验
    2.非正常情况下,出现bug概率会增加在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,而服务在面对这种恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug
    【原理】使用代理捕获网络信号进行环境部署来分析APP的延迟(加载)时间、内容,提出HTTP优化建议,让开发者能够在APP上线前提前预知app在较差网络环境下的表现,以便提前发现问题,进行有针对性优化。让APP在任何网络情况下,都能表现自如,出类拔萃核心流程 网络请求—》代理proxy—》进行目标操作(修改返回值&延迟&丢包等)—》返回给移动端(见下图)
    在这里插入图片描述

    【模拟方法】当前模拟恶劣网络环境主要可以通过以下这些手段实现:通过应用层或者传输层的代理服务器,通过在代理服务器上设置一些模拟恶劣网络环境的参数,使得通过这些代理服务器的流量都被转化为恶劣网络环境下的流量。如利用Fiddler,Charles等具有代理服务器功能的网络流量分析软件来实现。
    通过利用一些更底层的驱动层面的服务,通过控制网卡的收包发包的行为,来模拟恶劣的网络环境。如dummynet的ipfw驱动等。通过建立一个可控的网关,在网关上部署模拟恶劣环境的相关程序,所有需要借助该网关进行转发的流量都会被模拟为恶劣网络条件
    360免费wifi等。
    Linux下的netem就提供了这类支持。ps:实际生活中,电梯里 or 地铁里 模拟用户体验测试是个不错的选择~O(∩_∩)O【实际操作】具有代理服务器功能的网络流量分析软件

    一、【弱网测试场景】既然APP异常测试中,弱网测试属于必须考虑的测试项,哪些业务适合验证,哪些不需要验证呢?以下是个人浅见,欢迎抛砖引玉:
    1.结合APP本身属性比如社交类APP(聊天、抢红包)对网络环境依赖性大且用户关注度高,弱网环境下需要重点关注。结合互联网金融APP,申购流程中创建订单后是否支付成功,用户关注度最高(涉及扣费)。例如 弱网环境,创建订单失败,用户关注是否被扣费;创建订单成功后支付失败,再次支付是否重复扣费等
    2.使用频率&易遇到弱网的场景比如微博APP【观看小视频】,用户在碎片时间极易【观看小视频】(APP用户喜欢使用碎片化时间进行娱乐操作),同时增加了【刷微博】(微博小视频和刷微博 操作场景重合)此处就需要加强弱网环境测试比如金融APP,用户在碎片化时间使用金融APP,领取奖品、查看理财类新闻、查看收益好的例子:据我所知,微信的升级就会监听用户是否插着电,连着wifi,一旦监听到了,就马上告诉你,现场可以升级
    二、【弱网环境测试点总结】
    1.场景:弱网环境下某个操作响应时间原因:APP用户对等待时间容忍度低,若弱网环境loading超过5s,用户很容易kill应用后再次进入应用
    【测试点】性能测试中,加入弱网环境测试点,检测各个场景网络请求的 API 消耗时间(此处可以放入性能测试中,做为衡量APP性能好坏的指标)
    2.场景:弱网环境下直至超时,UI界面友好度&APP是否稳定原因:容错机制主要是考虑弱网情况下带来的不稳定,常见的问题是:loading超时导致ANR or crash【测试点】弱网环境直至超时,判定为断网状态,UI界面和提示,友好且理解无歧义
    3.场景:断网后环境下,是否自动重发请求原因:不同模块,开发对请求处理不同。测试前可了解,代码是否支持自动重复请求,自动重发请求的频率是什么?【测试点】断网后恢复网络,是否堆积网络请求(目前来说 理财模块 当10s左右无返回 则会重发请求),此时请求和返回正常情况下,是否出现异常情况。比如1次支付操作,断网后堆积多个支付请求,恢复网络后因堆积多个支付请求,是否完成多次支付ps:断网后恢复网络,考虑APP进行操作目的是否对伤害用户体验,通过哪种手段 可以达到操作目的同时用户体验无感或者低伤害比如,微信希望在线升级某些内容,会自动监听用户是否插着电 or 连着wifi,一旦监听符合上述场景,APP自动升级:
    1)插电场景 确保升级过程中,耗电不会导致手机低电量甚至没电
    2)wifi场景,确保升级过程中,流量消耗不会使用用户话费中流量包,不会导致因消耗话费流量伤害用户体验4.网络请求中,kill进程 (导致APP登录态掉线)登录同一个账号成功,应该不继续相同网络请求(要和RD确认,程序实际实现)登录不同账号成功,应该不继续相同网络请求(要和RD确认,程序实际实现)
    三、【常见弱网问题和原因分析】
    1.场景:上传大图或者多图时,在弱网络环境下出现进度条走到一半卡住然后又从头开始原因:采用分段上传方式,直至请求超时,分段传输没有结束,代码逻辑不对,导致每次重试都重头上传,一直循环
    2.场景:在弱网络环境下容易出现登录不上或者登陆后立即掉线原因:登录没有缓冲机制,而请求超时时间的设置没有区分同网络情况解决方案:建议开发针对wifi、2g、3g、4g设置不同的超时时间
    3.场景:弱网络环境下,请求的数据返回时间较长,等待的过程中,如果页面上的相关控件仍然可以操作,则容易出现异常现(闪退现象、触发底部时获得原页面请求数据)原因:依赖数据的控件操作,在数据返回前没有做兼容处理4.场景:搜索时输入关键字会连续发请求,停下时,显示最终的关键字搜索结果,但很快又会被前面的关键字搜索结果覆盖了;原因:中间的请求返回较慢,显示了最终的结果后,之前的请求返回的数据应不做处理。

    在这里插入图片描述
    二、整理弱网测试时碰到的问题和解决方案

    1.现象:用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致
    原因:数据下载过程中、下载失败后,未进行数据回滚,终止后重新下载,出现数据重复。
    解决方案:通过事务处理数据下载逻辑,下载失败后,应用本地数据库进行数据回滚。
    2.现象:用户点击数据上传,数据上传过程中,网络弱切不稳定,基于联网状态自动触发数据上传,导致穿线数据重复写入,形成脏数据。
    原因:数据上传过程中,由于失败重传机制,会出现连续两次写操作,并且未做唯一识别处理。
    解决方案:根据数据特性,对可能造成脏数据的地方,通过关键字段,例如创建时间,key-value值等生成hash键,标记记录唯一性,即数据写入事,检查hash键是否存在,如果已经存在,当前重复数据丢弃。
    3.现象:在弱网环境下,用户输入用户名和密码点击登录,应用链接超时返回用户名和密码错误提示。
    原因:在弱网环境下的连接超时后,按照强网业务逻辑,导致返回超时异常。
    解决方案:在弱网环境下的链接超时后,检查应用本地数据库是否有用户登录信息,若存在,获取应用本地用户信息进行登录。

    4.在弱网环境下,用户输入用户名和密码后点击登录,登录过程中应用崩溃并且闪退。
    原因:弱网环境下数据下载超时,加载数据严重依赖于后来的异步加载。数据还没来得及返回,应用跳转到下个activity,导致崩溃。
    解决方案:健壮数据加载流程,通过标记后台数据下载状态加载界面,依赖数据下载完成后,再进行页面跳转。

    5.现象,弱网络环境下,用户请求页面响应时间教程,等待的过程中,页面上的部分空间仍然可以操作,当用户点击控件时,出现应用闪退现象。
    原因:没有对数据加载流程进行判断,直接暴露控件,当出现依赖数据控件操作时,没有在数据返回前做兼容处理。
    解决方案:在数据加载过程中,设置页面对外暴露的控件为不可操作,当数据加载完再释放。

    6.现象:在弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新关键字并发送请求,等待搜索结果返回后,当前结果页被之前的关键字搜索结果舒心覆盖。
    原因:中间的请求返回较慢,显示最终的结果后,之前请求返回的数据应不做处理。
    处理方案:对异步请求未完成的任务进行cancel

    展开全文
  • 弱网测试出现的问题解决思路

    千次阅读 2019-07-13 10:56:32
    摘自弱网测试时碰到的问题解决方案再加上自己的一些遇到的解决~ 1.没进入到后台,可以在前端请求开始时候加个定时器。在请求完毕,或者一定时间,删除定时器。 2. 现象:用户登录应用时下载初始化数据,下载...

    摘自弱网测试时碰到的问题和解决方案再加上自己的一些遇到的解决~

     

    1.没进入到后台,可以在前端请求开始时候加个定时器。在请求完毕,或者一定时间,删除定时器。

     

    2. 现象:用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致。

    原因:数据下载过程中、下载失败后,未进行数据回滚,中止后重新下载,出现数据重复

    解决方案 :通过事务处理(批处理)数据下载逻辑,这里可以是,下载失败后,应用本地数据库进行数据回滚。

     

    3. 现象:用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据

    原因:数据上传过程中, 由于失败重传机制,会出现连续两次写操作,并且未做唯一识别处理

    解决方案 :根据数据特性,对可能造成脏数据的地方,通过关键字段,例如创建时间,key-value值等生成hash键,标记记录唯一性,即数据写入时,检查hash键是否存在,如果已经存在,当前重复数据丢弃。

     

    4.现象:在弱网环境下,用户输入用户名和密码点击登录,应用链接超时返回用户名和密码错误提示。

    原因:在弱网环境下的连接超时后,按照强网业务逻辑处理,导致返回超时异常。

    解决方案 : 弱网连接超时后,检查应用本地数据库是否有用户登录信息,若存在,获取应用本地用户信息进行登录。

     

    5. 现象:在弱网环境下,用户输入用户名和密码后点击登录,登录过程中应用崩溃并且闪退。

    原因:弱网环境下数据下载超时,加载数据 严重依赖于后来的异步加载。数据还没来得及返回,应用跳转到下个activity,导致崩溃。

    解决方案 :健壮数据加载流程,通过标记后台数据下载状态加载界面,依赖数据下载完成后,再进行页面跳转。

     

    6. 现象:弱网络环境下,用户请求页面响应时间较长,等待的过程中,页面上的部分控件仍然可以操作,当用户点击控件时,出现应用闪退现象;

    原因:没有对数据加载流程进行判断,直接暴露控件可控,当出现依赖数据的控件操作时,没有在数据返回前做兼容处理。

    解决方案 :在数据加载过程中,设置页面对外暴露的控件为“不可操作”,当数据加载完再释放。

     

    7.现象:在弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新关键字并发送请求,等待搜索结果返回后,当前结果页被之前的关键字搜索结果刷新覆盖

    原因:中间的请求返回较慢,显示最终的结果后,之前请求返回的数据应不做处理。

    解决方案 :对异步请求未完成的任务进行cancel.

     

    展开全文
  • 最近做了一次移动APP的弱网和中断测试,接下来分享一下遇到一些问题: 1、现象:用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致。  ...

    最近做了一次移动APP的弱网和中断测试,接下来分享一下遇到的一些问题:

     

    1、现象:用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致。

     

      原因:数据下载过程中、下载失败后,未进行数据回滚,中止后重新下载,出现数据重复

     

      解决方案:通过事务处理数据下载逻辑,下载失败后,应用本地数据库进行数据回滚。

     

    2、现象:用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据

     

      原因:数据上传过程中,由于失败重传机制,会出现连续两次写操作,并且未做唯一识别处理

     

      解决方案:根据数据特性,对可能造成脏数据的地方,通过关键字段,例如创建时间,key-value值等生成hash键,标记记录唯一性,即数据写入时,检查hash键是否存在,如果已经存在,当前重复数据丢弃。

     

    3、现象:在弱网环境下,用户输入用户名和密码点击登录,应用链接超时返回用户名和密码错误提示。

     

      原因:在弱网环境下的连接超时后,按照强网业务逻辑处理,导致返回超时异常。

     

      解决方案:弱网连接超时后,检查应用本地数据库是否有用户登录信息,若存在,获取应用本地用户信息进行登录。

     

    4、现象:在弱网环境下,用户输入用户名和密码后点击登录,登录过程中应用崩溃并且闪退。

     

      原因:弱网环境下数据下载超时,加载数据严重依赖于后来的异步加载。数据还没来得及返回,应用跳转到下个activity,导致崩溃。

     

      解决方案:健壮数据加载流程,通过标记后台数据下载状态加载界面,依赖数据下载完成后,再进行页面跳转。

     

    5、现象:弱网络环境下,用户请求页面响应时间较长,等待的过程中,页面上的部分控件仍然可以操作,当用户点击控件时,出现应用闪退现象;

     

      原因:没有对数据加载流程进行判断,直接暴露控件可控,当出现依赖数据的控件操作时,没有在数据返回前做兼容处理。

     

      解决方案:在数据加载过程中,设置页面对外暴露的控件为“不可操作”,当数据加载完再释放。

     

    6、现象:在弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新关键字并发送请求,等待搜索结果返回后,当前结果页被之前的关键字搜索结果刷新覆盖

     

      原因:中间的请求返回较慢,显示最终的结果后,之前请求返回的数据应不做处理。

     

      解决方案:对异步请求未完成的任务进行cancel.

     

     

    7、.

           原因:请求发送出去后,返回的数据丢包了。

           解决方案:在客户端接收到服务器返回的信息前,将下单按钮置为灰色不可用状态。客户端在规定时间内没收到响应,提示用户操作超时,或提示用户可能因为网络的原因引起页面没有及时刷新,需要手工刷新来检查下单是否成功。

     

     

    8、点击返回按钮,客户端已经向服务器发出请求,但是页面没返回原来页面。

     

     

    原因:页面没有做正确的跳转。

    转载于:https://www.cnblogs.com/zhu520/p/10923096.html

    展开全文
  • (注:来自于网络资源整理) 1.场景:上传大图或者多...解决方案:建议开发针对wifi、2g、3g、4g设置不同超时时间 3.场景:弱网络环境下,请求数据返回时间较长,等待过程中,如果页面上相关控件仍然可以操作

    (注:来自于网络资源整理)

    1.场景:上传大图或者多图时,在弱网络环境下出现进度条走到一半卡住然后又从头开始

    原因:采用分段上传方式,直至请求超时,分段传输没有结束,代码逻辑不对,导致每次重试都重头上传,一直循环

    2.场景:在弱网络环境下容易出现登录不上或者登陆后立即掉线

    原因:登录没有缓冲机制,而请求超时时间的设置没有区分同网络情况

    解决方案:建议开发针对wifi、2g、3g、4g设置不同的超时时间

    3.场景:弱网络环境下,请求的数据返回时间较长,等待的过程中,如果页面上的相关控件仍然可以操作,则容易出现异常现(闪退现象、触发底部时获得原页面请求数据)

    原因:依赖数据的控件操作,在数据返回前没有做兼容处理

    4.场景:搜索时输入关键字会连续发请求,停下时,显示最终的关键字搜索结果,但很快又会被前面的关键字搜索结果覆盖了;

    原因:中间的请求返回较慢,显示了最终的结果后,之前的请求返回的数据应不做处理。

    5.场景:用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致。
      原因:数据下载过程中、下载失败后,未进行数据回滚,中止后重新下载,出现数据重复
      解决方案 :通过事务处理数据下载逻辑,下载失败后,应用本地数据库进行数据回滚。
      6.场景:用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据
      原因:数据上传过程中,由于失败重传机制,会出现连续两次写操作,并且未做唯一识别处理
      解决方案:根据数据特性,对可能造成脏数据的地方,通过关键字段,例如创建时间,key-value值等生成hash键,标记记录唯一性,即数据写入时,检查hash键是否存在,如果已经存在,当前重复数据丢弃。
      7.场景:在弱网环境下,用户输入用户名和密码点击登录,应用链接超时返回用户名和密码错误提示。
      原因:在弱网环境下的连接超时后,按照强网业务逻辑处理,导致返回超时异常。
      解决方案 : 弱网连接超时后,检查应用本地数据库是否有用户登录信息,若存在,获取应用本地用户信息进行登录。
      8.场景:在弱网环境下,用户输入用户名和密码后点击登录,登录过程中应用崩溃并且闪退。
      原因:弱网环境下数据下载超时,加载数据严重依赖于后来的异步加载。数据还没来得及返回,应用跳转到下个activity,导致崩溃。
      解决方案 :健壮数据加载流程,通过标记后台数据下载状态加载界面,依赖数据下载完成后,再进行页面跳转。
      9.场景:弱网络环境下,用户请求页面响应时间较长,等待的过程中,页面上的部分控件仍然可以操作,当用户点击控件时,出现应用闪退现象;
      原因:没有对数据加载流程进行判断,直接暴露控件可控,当出现依赖数据的控件操作时,没有在数据返回前做兼容处理。
      解决方案:在数据加载过程中,设置页面对外暴露的控件为“不可操作”,当数据加载完再释放。
      10.场景:在弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新关键字并发送请求,等待搜索结果返回后,当前结果页被之前的关键字搜索结果刷新覆盖
      原因:中间的请求返回较慢,显示最终的结果后,之前请求返回的数据应不做处理。
      解决方案:对异步请求未完成的任务进行cancel

    展开全文
  • 使用单卡4G聚合路由器的问题 1、4G弱网环境下,4G单链路无法保障超清视频传输质量 2、弱网环境主要包括:深山老林、车载移动、人流密集场所 3、4G单链路在弱网环境下视频传输,直观效果就是出现连续卡顿、花屏...
  • 不知道什么时候Android Studio 插件和Gradle升级后,插件在线安装就搜索不到插件了,一直处于转圈圈状态,通过各种测试和摸索总结出几种解决方案。我Android Studio已经升级到3.6.3. 一.排查他因 排除一些相关因素...
  • •电商直播过程中会遇到什么难题与解决方案 •电商直播也是直播+一个技术展示,如果某一个环节出现问题,就会导致整场直播卡顿、延迟,用户无法参与抢购等,给用户观看体验以及电商活动造成严重影响。怎么...
  •  解决弱网条件下加载速度问题。 2、缓存原理:  缓存接口数据,在一些数据新旧敏感性不高场景下很有用,在非首次加载数据时候优先使用上次请求来缓存数据,可以让页面更加快速地渲染出来,而不用等待...
  • Glide加载图片变绿 原因,Glide默认加载图片格式是DecodeFormat.PREFER_RGB_565 ,缺少ALPHA通道,导致加载图片变绿。...解决方案,配置自己网络栈, 前提:我用是Retrofit2,其内部使用是OkHttp3. 配置 ..
  • 不做任何开发,弱网环境下实现直播零卡顿,听上去是不是天方夜谭?看完这篇文章你就知道,...如何接入七牛云 QUIC 解决方案? 直播痛点-卡顿 卡顿是最影响直播体验因素之一,也是最难解决的问题之一。在流媒体...
  • 而离线包方案就是解决问题的一个比较成熟的方案。 技术方案 首先阐述下大概思路: 我们可以先将页面需要的静态资源打包并预先加载到客户端的安装包中,当用户安装时,再将资源解压到本地存储中&...
  • 游戏中网络模块

    2019-02-25 01:18:39
    解决方案:传输协议、弱网处理、网络同步 问题解答 目的 游戏项目中网络相关开发知识 网络模块 游戏中网络模块与其它软件系统基本原理并无差异,基本上是解决如何把网络消息快速安全发送到其端,然后其他端...
  • 为了解决大部分个人开发者以及小型初创团队经济能力不足,无法配备可靠网络损伤测试方案的问题,HoloWAN开发团队推出一款完全免费网络损伤仪软件——HoloWAN meme,该网络损伤仪软件功能定义能满足大部分个人...
  • 美联(蘑菇街)无线技术分享感想

    千次阅读 2017-03-13 14:05:03
    美联客户端无线网关实践 网关第一个优化的问题: 由于https(需要5次握手)比http(需要3次握手)多了两...解决方案: 应用启动建立httpsssl隧道,需要证书认证,并保存会话信息到内存中。当认证成功后,ssl隧道
  • 一方面基于UDPlocalDNS解析在高丢包率移动网络环境下更容易出现解析超时的问题,另一方面在弱网环境下DNS解析所引入动辄数百毫秒网络延迟也大幅加重了整个业务请求负担,直接影响用户终极体验。...
  • 2019 与我技术之路

    2020-12-09 05:17:58
    笔者开始收集很多互联网公司在这方面的解决方案,发现主流方式都是采用离线包方案,通过结合目前我司的前端部署实际情况(通过 Jenkins 打包成 Docker 镜像),最终形成了一套可行的...
  • UX2 beta 3正式发布!!

    2020-06-21 15:00:18
    UX浏览服务是为了加速浏览网页而开发浏览服务,它解决了WebView一系列问题,它能够在网络差情况下快速浏览,比webview快一倍以上,是webview优化代替方案。它拥有完善缓存管理策略,经过优化加载顺序...
  • 总所周知,单页首屏体验一直不怎么样,特别是在弱网的情况下白屏时间太长,那怎么解决呢?可能骨架屏方案是个不错选择。骨架屏解决了什么问题?如果用户在等待Js、Css等资源加载时间内显示...
  • 移动Push推送典型性能问题分析解决,以及高可用、高性能、高稳定性如何保证。移动Push推送是移动互联网最基础需求之一,用于满足移动互联环境下消息到达App客户端。以转转(58赶集旗下真实个人闲置交易平台)为...
  • Chameleon,简写CML,中文意思变色龙,意味着就像变色龙一样能适应不同环境跨端整体解决方案,达到真正意义上"一套代码,多端运行"终极目标 Booster 是一款专门为移动应用设计易用、轻量级且可扩展质量...
  • Chameleon,简写CML,中文意思变色龙,意味着就像变色龙一样能适应不同环境跨端整体解决方案,达到真正意义上"一套代码,多端运行"终极目标 Booster 是一款专门为移动应用设计易用、轻量级且可扩展质量...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

弱网问题的解决方案