zoukankan      html  css  js  c++  java
  • 安全测试系列之弱网测试

    APP弱网测试

    用户在使用APP的过程中,网络条件比较复杂,如WiFi,4G,3G,2G;并且,当前有三大运营商,所提供的网络制式不太相同。同时,用户使用的场景也各不相同,比如室内,户外,电梯或者停车场等。因为不做任何处理的话很可能会崩溃闪退,很影响用户的使用。所以对客户端要求就比较高了,需要做容错处理,比如异常提示,超时处理,重连机制,以及缓存机制。


     

    弱网测试作为健壮性测试的重要部分,对于移动端的测试来说必不可少。主要包含以下几个方面。
     

    弱网功能测试

    这一部分主要是在各种非wifi网络环境下进行的功能测试,同时模拟高延时和高丢包的异常网络环境进行健壮性测试。
    2G/3G/4G的网络可以通过使用电话卡移动/联通/电信等网络进行模拟,关注页面的响应时间、页面呈现是否完整一致等。
    高延迟和高丢包的网络环境需要借助工具来模拟,如Charles。IOS手机自带开发者模式

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

    页面图片在弱网环境下加载不出来(图片加载逻辑需优化)

    需要模版的页面版式结构混乱(模版文件在弱网环境的加载需优化)

    页面响应时间较长没有任何显示(页面显示逻辑待优化、重试机制加入)

     

    弱网UI测试

    弱网情况下:

    APP很可能出现UI刷新不及时或者不刷新的情况,此时就可能会导致呈现在用户面前的是一个残缺的页面;

    偶会也会导致出现页面UI元素错乱的情况

     

    无网状态测试

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

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

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

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

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

     

    网络切换测试

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

    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

     

    响应时间

    1.安卓手机一般超过5秒钟无响应就会报ANR的错误

    2.ios手机响应时间过长也会报错

    3.2-5-10原则(或3-5-8):

    4.用户能够忍受的最佳响应时间是2秒以内;

    5.超过5秒无响应的话,一般性子比较急躁的用户很可能就会直接退出页面了;

    6.如果超过10秒无响应,很多人都会选择杀掉APP;

    7.APP经常处于无响应或者响应时间过长的状态,会导致大批的用户转移到竞争对手的产品上。

     

    异常测试

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

    异常提示信息

    出错容错机制

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

    出错以后自动重连等

    tips:

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

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

     

    弱网测试一般流程

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

    各个模块的功能正常可用

    页面元素/数据显示正常

     

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

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

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

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

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

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

    无网络提示信息是否友好

     

    step3:再次考虑弱网情况

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

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

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

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

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

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

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

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

    请求回调未完成—驾考科四难题攻克弹窗

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

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

     

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

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

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

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

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

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

  • 相关阅读:
    @loj
    @codeforces
    @bzoj
    @hdu
    @poj
    @loj
    @bzoj
    @bzoj
    Python配合BeautifulSoup读取网络图片并保存在本地
    Java--多线程读取网络图片并保存在本地
  • 原文地址:https://www.cnblogs.com/eflypro/p/14610786.html
Copyright © 2011-2022 走看看