APP弱网模拟测试

1、为什么要做弱网测试:

实际的客户现场可能网络不稳定或者网速低,恶劣的网络环境会导致出现一些bug,影响用户体验甚至某些服务不可用。而公司内部的研发环境网络通常比较顺畅,难以复现这种bug。要解决这种问题,就需要制造弱网络的环境进行测试、复现并修复问题。

移动端测试区别于PC端测试的一点就是网络的多变性;不同的网络环境和网络制式的差异,都会对用户使用app造成一定影响。
例如:进地铁、上公交、进电梯等,如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。因此,app网络测试,特别是弱网测试显得尤为重要。
2、Fiddler怎样模拟弱网?
利用Fiddler来模拟恶劣的网络环境,实现简单,较为直观,缺点是只能支持那些利用HTTP进行通信和交互的服务。
利用fiddler的Simulate Modem Speeds功能,可以通过设置网络的上传、下载的网络流量大小来达到模拟弱网环境,从而实现弱网模拟测试,即通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。
3、限速原理
Fiddler限速是以网络延迟的方式实现的,网络延迟时间*网速=传输字节数。

点击Rules – Customize Rules(快捷键Ctrl + R)打开Fiddler ScriptEditor,或者直接点开右侧主页签的FiddlerScript。

在文件中搜索关键字:m_SimulateModem;
修改m_SimulateModem值为true,即开启网络模拟:
  var m_SimulateModem: boolean = false;
修改uploaded、downloaded的数据来模拟不同的弱网场景:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "384";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "2560";
}

注释说明: request-trickle-delay中的值代表每KB的数据被上传时会被延时多少毫秒;response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒。比如你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=100ms,就改成100。

当勾选了Simulate Modem Speeds时,request-trickle-delay 与 response-trickle-delay就会被设置,如果本身网速已经相当快的话,这里设置的值就可以近似地推算出开启模拟后的上传和下载带宽了,比如默认设置下上传延时为300ms下载延时为150ms,可以推算出大致的模拟带宽为:
上传带宽=(1 * 8/1000) /0.300 ≈ 0.027Mbps
下载带宽=(1 * 8/1000) /0.150 ≈ 0.053Mbps
实际情况下得到的带宽可能会有误差,受各种外因影响不会这么精确。
由此可见下载带宽是上传的两倍,也就是延时越小,带宽越大。带宽和这里的延时是成反比的。

上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s),如果想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms;(=1000/50)

PS:设置之后可以通过http://www.speedtest.cn/在线测试网速,看是否生效;
2G一般上行/下行速率约为:2.7、9.6kbs,模拟设置为:uploaded 约 2962 ms,downloaded 约 833 ms;(弱网一般指2G网络)
3G一般上行/下行速率约为:384、2560kbs,设置为:uploaded 约 2.6 ms,downloaded 约 0.39 ms;
PS:弱网模拟还可以通过其它工具实现,比如360WiFi的限速设置等;
 3.2、扩展弱网络规则
可能在测试中不会想要一个同样虚弱的网络环境,而是随机强弱的网络,这样比较贴切真实情况,那么可以修改上述代码为:
static function randInt(min, max) {
return Math.round(Math.random()*(max-min)+min);
}
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = ""+randInt(1,2000);
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = ""+randInt(1,2000);
}
这里的randInt(1,2000)应该很好理解,代表1-2000中的一个随机整数,这样就会出现偶尔有延迟偶尔网络又良好的情况。
 4、前端性能分析及优化
前端性能在一定程度可以提升用户体验,而前端的性能数据可以通过fiddler的Statistics和Timeline来获取,从而为性能分析及优化提供依据。
4.1、实例--前端性能数据获取分析
通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。
同时,还可以通过Timeline分析资源加载时序图,可以很直观地看到页面上各个资源加载过程所需要的时间和先后顺序,有利于找出加载过程中比较耗时的文件资源,帮助我们有针对性地进行性能优化。
 5、小结
总的来说,fiddler是移动互联网测试的利器,除以上介绍的这些常见的日用场景外,还有很多其它用途,如域名的重定向、API的测试等,这里就不一一列举,如有兴趣,可抽空一起探讨。

转载于:https://www.cnblogs.com/yaoyao9446/p/9242454.html

fiddler----APP弱网测试相关推荐

  1. 使用fiddler进行app弱网测试

    fiddler----APP弱网测试 转自:http://www.51testing.com/html/01/n-3727001.html APP弱网模拟测试 移动端测试区别于PC端测试的一点就是网络 ...

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

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

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

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

  4. 弱网测试用什么农_弱网测试--使用fiddler进行弱网测试

    弱网测试原理以及方法(一) 一.为什么要进行弱网测试? 按照移动特性,各种网络连接协议不同,导致通信的信号不同,速率也不同,影响应用的加载时间.可用性.稳定性 二.什么样的网络属于弱网? 低于2g速率 ...

  5. android 的弱网测试,Android APP弱网测试问题和解决分析

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

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

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

  7. APP弱网测试【快速上手】

    一.弱网测试概念 简单说就是在不同网络环境下,像在公车上.在地铁.地下车库等.在这种情况下,手机常常会出现网络抖动.上行或下行超时,导致 APP 应用中出现丢包延迟,从而影响用户体验. 1.1 弱网测 ...

  8. APP弱网测试工具(QNET)

    QNET介绍官网链接:​​​​​​ QNET弱网测试-网络测试工具-腾讯WeTestQNET无需ROOT/越狱手机,无需连接数据线,以独立app的方式,为用户提供快捷.可靠.功能完善的弱网模拟服务ht ...

  9. 移动端App弱网测试

    本文来自进击的bug 在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式,不同的协议,不同的制式,不同的速率,使移动应用运行的场景更加丰 ...

  10. Fiddler之弱网测试(Web)

    日常我们的网络状况比较好,有时候经常忽略在低网情况下系统的页面表现,而fiddler可以帮助我们限速进 而达到模拟低速网络的状态 1.自定义限速:打开Fiddler,点击Rules选择Customiz ...

最新文章

  1. phonegap+emberjs+python手机店发展,html5实现本地车类别~
  2. UI调试神器 for ios:Reveal的使用与破解
  3. 【Scala】Scala-调用Java-集合
  4. azkaban工作流调度器及相关工具对比
  5. 处理数字_9_计算标准差
  6. mark:apache建站permission问题
  7. im2col原理小结
  8. 线性表------栈
  9. 《论可计算数及其在判定上的应用》简单理解
  10. 【Java】矩阵乘法的朴素算法
  11. 沉得住气的程序员们!
  12. python社区版如何下载库_pycharm社区版在哪里下载
  13. MITO-ID 线粒体膜电位检测试剂盒的作用机制和应用
  14. kafka重新分配partition
  15. 行业报告免费下载-干货!68份营销行业报告分享
  16. rd,pe,ae,fae,marketing,sales都是干嘛的?
  17. Redis(6)——GeoHash查找附近的人
  18. python源码只有编译成二进制_setup-cython(2):把Python打包成二进制应用吧
  19. [收藏]好学若饥 谦卑若愚
  20. Ubuntu下运行.sh文件

热门文章

  1. 在scanf中的作用
  2. 我写了个IDEA开源插件,vo2dto 一键生成对象转换
  3. Nineteen Hundred Weekends
  4. 小米手机电量消耗越来越快了,输入这几个数字,续航强劲如新机
  5. 高通SDM450 Android9上调试RS485接口温湿度传感器调试介绍
  6. JZOJ 3914. 人品问题
  7. 自助设备无线联网方案
  8. 那些年,我们在Android机型适配上遇到的坑丨之Camera拍照时快门咔嚓声
  9. DESeq分析基因的差异表达以及安装中出现的问题
  10. 股价横盘一年,抄底百度的最佳时机到了?