fiddler下载地址:https://www.telerik.com/fiddler

 一:为什么要做弱网络测试 

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

  二:如何模拟恶劣网络环境?

  本文仅以fiddler为例,其他的做个了解,不具体研究。

  三:Fiddler怎样模拟弱网?

  Fiddler 是一个 HTTP 调试代理,它能够记录所有你电脑和互联网之间的 HTTP 通讯,Fiddler 也可以让你检查所有的 HTTP 通讯,设置断点,以及修改所有的“进出”的数据(指Cookie/HTML/JS/CSS 等文件)。

  利用Fiddler来模拟恶劣的网络环境,实现简单,较为直观,缺点是只能支持那些利用HTTP进行通信和交互的服务。

  打开fiddler,默认情况下Rules –> Performances –> Simulate Modem Speeds 是未勾选状态,网络正常。当选中此选项(模拟光猫网速)后,网速就会变很慢,打开一个网页要加载很久。这样就实现了弱网络效果。

设置

  如果想了解(上传和下载)网速的具体数值,可以使用一个工具speedtest,测速方法很简单,网上有大把教程。

  http://www.speedtest.net/是英文的网站,应该是国外版,访问比较慢。而且Windows系统只支持Windows10下载客户端,我用的Windows7使用chrome浏览器要安装Speedtest扩展程序就得翻墙,所以不推荐使用。建议访问http://www.speedtest.cn/网站,测速生成结果很快且是中文的。支持手机客户端APP下载。

  四:限速原理

  Fiddler限速是以网络延迟的方式实现的,网络延迟时间*网速=传输字节数。

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

打开该文件后,Ctrl + F 查找m_SimulateModem标志位,可以看到如下代码:

  if (m_SimulateModem) { // Delay sends by 300ms per KB uploaded. oSession["request-trickle-delay"] = "300"; // Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = "150"; }

  注释说明: 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

  实际情况下得到的带宽可能会有误差,受各种外因影响不会这么精确。

  由此可见下载带宽是上传的两倍,也就是延时越小,带宽越大。带宽和这里的延时是成反比的。

  五:调整网络环境参数

  Fiddler 默认的 Simulate Modem Speeds速度实在太慢了,而这个限速的参数是可以调整的,如果需要再快一点可以修改配置文件Fiddler2ScriptsCustomRules.js。(如若修改勿忘备份原文件)在fiddler官网http://www.fiddlerbook.com/Fiddler/dev/ScriptSamples.asp可以找到参考示例。

  下面提供了两种简单的修改脚本的方法,选择一种即可。

  方法1

  查找到if (m_SimulateModem)语句,修改代码。下面的脚本实现了一个随机延时量设置,使得网络带宽不是恒定为一个低速的值,而是会在一定范围内随机抖动:

  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,50); // Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = ""+randInt(1,50);}

  方法2

  点击fiddlerScript 在代码里找到onBeforeRequest,这里定义了在发送请求前做什么。加入如下代码可以实现延迟:

  oSession["request-trickle-delay"]="3000"; //请求阶段延迟3秒oSession["response-trickle-delay"]="3000"; //响应阶段延迟3秒

添加代码

  上面两种方法选其一,修改后保存配置文件(Ctrl+S)或者清掉缓存(Rules –> Performances –>Disable Caching),再次勾选Rules –> Performances –> Simulate Modem Speeds 进行测速。注意:每次编辑并保存配置文件后,Simulate Modem Speeds选项会被取消,请重新勾选。

  限速完毕一定要取消勾选,不然会影响上网。像第二种方法由于请求和响应都延迟3秒,会导致访问网页很慢。

抓包工具 Fiddler 使用:弱网络环境模拟限速测试流程相关推荐

  1. 网络抓包工具 Fiddler

    网络抓包工具 Fiddler 下载网址 http://www.telerik.com/fiddler 简介 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的ht ...

  2. 抓包工具 - Fiddler(详细介绍)

    原文:抓包工具 - Fiddler(详细介绍) Fiddler的详细介绍 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟ht ...

  3. 功能测试与抓包工具Fiddler(http与fiddler)

    文章目录 功能测试与数据库 项目与数据库的关系 功能测试与抓包工具 HTML与HTTP 协议 URL HTML HTTP HTTP请求与响应 基本概念 HTTP请求 HTTP响应 抓包工具 Fiddl ...

  4. 【解决抓包工具fiddler不抓取360浏览器的数据的问题】

    抓包工具fiddler不抓取360浏览器的数据 fiddler可以抓到Firefox浏览器的包,但是抓不到360浏览器的包. 操作步骤: 打开Fiddler -> 菜单栏 工具(Tools )- ...

  5. api 数据 App 抓包工具 fiddler

    from   :  http://www.heyuan110.com/2015/06/17/App抓包工具fiddler/ App抓包工具fiddler Charles fiddler 抓包 确保安装 ...

  6. 【爬虫】网页抓包工具--Fiddler

    [爬虫]网页抓包工具--Fiddler Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888, ...

  7. 抓包工具Fiddler使用(主要用于监听APP对外访问请求)

    一.介绍 本人最近在做android开发,有时会遇到线上APP版本显示的数据"不符合预期",查找问题时,特别需要查看一下请求参数是否有问题,但是直接通过线上日志又不是很方便,如果此 ...

  8. MacOS 抓包工具Fiddler Everywhere:安装与使用

    MacOS 抓包工具Fiddler Everywhere:安装与使用目录 1. Fiddler Everywhere 安装 2. Fiddler Everywhere配置 2.1 在本机上抓取数据 2 ...

  9. 抓包工具 - Fiddler

    一. 抓包的定义 就是将网络传输发送与接收的数据包进行截获.重发.编辑.转存等操作,也用来检查网络安全. 抓包也经常被用来进行数据截取等. 二. 抓包的作用 定位网络接口问题 分析其他APP数据接口 ...

最新文章

  1. 将远程桌面客户端配置为连接到特定端口
  2. 【C/C++高质量编程 笔记】
  3. rough and crude
  4. POM.xml红叉解决方法
  5. 冯·诺依曼计算机特点
  6. python-函数-变量的作用域-全局变量
  7. HTML 5 服务器发送事件
  8. requests与bs4编码
  9. PX4板载计算机外部控制
  10. javascript 3d engine ---m3d 公开
  11. 怎样成为优秀软件模型设计者
  12. 《JAVA与模式》之解释器模式
  13. 2021全球Top 1000计算机科学家h指数发布,中国53人上榜!Bengio总榜第二,韩家炜居华人首位...
  14. 基于JSP的小区停车管理系统设计与实现
  15. 一款牛逼的Android端身份证合成工具
  16. TRIZ创新方法#学习笔记02# |功能分析、技术矛盾和物理矛盾
  17. 【单片机】数码管显示器仿真
  18. RTKLIB源码调试.trace文件解析.stat文件解析
  19. 服务器虚拟化的毕业设计,虚拟化技术毕业论文题目精选
  20. 金蝶迷你版云服务器没有响应,金蝶迷你版打开显示已运行,请等待,就不出现金蝶界面...

热门文章

  1. STM32控制TFTLCD显示
  2. 基于LSTM的故障诊断
  3. LPC5528使用记录(一)
  4. Object Pascal入门
  5. RS485单灯控器通信协议
  6. 4-12......
  7. windows弹出“该文件没有与之关联的应用来执行该操作”
  8. 学习毅力篇执行力:5个技巧把目标变为行动
  9. 经营性房产的管理范围
  10. 对偶上升法 (Dual Ascent)