用Fiddler模拟低速网络环境【转】

原文链接:http://caibaojian.com/fiddler.html

我们为什么要限速

限速对于web前端研发是非常重要的,由于开发者的机器一般配置都很高,并且是在localhost下来调试程序,所以很难模拟到用户的真实使用情 况,如正在下载js,css等静态资源的时候,页面的一个渲染情况。当网速很慢的时候,我们更希望看到的是先渲染出用户界面,而不是让用户看到一片空白。 那么这个时候,网络限速就能很方便在localhost针对类似的情况来做性能调试与优化。·

fiddler模拟限速的原理

我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。
他提供了一个功能,让我们模拟低速网路环境…启用方法如下:
Rules → Performances → Simulate Modem Speeds (如下图)

勾选之后,你会发现你的网路瞬间慢超多…
(想当年国中时我们的网路速度也是一路降子走来啊…)

如果你觉得模拟的速度慢到一个爆炸,不Make Sense 的话…
你也可以自己定义Modem Speeds 究竟要多快…
点开Rules → Customize Rules (如下图)

m_SimulateModem这个字,你会找到下面这段:

这就是他模拟网路速度的原理,每上传/下载1KB 要delay 多久…
如果你习惯用kbps 去算的话,那么我们的算法就是 1000/下载速度 = 需要delay的时间(毫秒),比如50kb/s  需要delay200毫秒来接收数据。

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

请注意,当你存档之后,原本已经勾选的Simulate Modem Speeds 会被取消勾选,
要记得再到Rules → Performances → Simulate Modem Speeds 勾选喔~

原文链接:http://caibaojian.com/fiddler.html

同场加映:让Fiddler 只针对某个Process 进行Debugging

以Windows 为例,Fiddler 开了之后,只要是走IE 下「网际网路选项」的程式(IE, Chrome)
预设所有流量都会经过Fiddler
如果你觉得你在模拟低速网路连网页时,不想影响其他程式…
你可以指定Fiddler 只针对某Process Debug...
方法为,把Fiddler 视窗中,那个很像靶心的东西给拉到你要Debug 的程式上(如下图)

被你靶心拉到的程式,在一瞬间会有「触电」的感觉如下图XD·

放开滑鼠后,Fiddler 就只会监控你指定的Process 啰~

其他Fiddler 小秘技(from Vexed‘s Blog)

Fiddler替换线上档案为本机端档案或另一个线上档案

先讲将线上档案替换为本机端档案。 方法是点下Fiddler 右上的AutoResponder ,勾选Enable automatic responses 和Unmatched requests passthrough ,按下右边的Add :

再将下方的Rule Editor 第一行修改为线上档案位址:

线上档案位址也可以使用Regular Expression ,开头加上regex: 即可。

按下Rule Editor 第二行右边的箭头,选择Find a file ... :

选择要替换成的本机端档案,按下右边的SAVE :

大功告成!

将线上档案替换成另一个线上档案,步骤几乎一模一样,差别仅在Rule Editor 第二行填入的是另一线上档案位址:

感谢草儿介绍AutoResponder这么好用的东西m(__ __)m 。

更多AutoResponder的说明请参考Fiddler官方文件- AutoResponder Reference 。

Fiddler替换HTTP Request Host

这边指的替换HTTP Request Host是,所有原先发到a.com的HTTP Request , Fiddler都帮你转发到b.com ,而在浏览器中毫无感觉。 测试debug过程中常有这种需求,例如用www. dev.demo.com替换 www.demo.com 。

替换的方法有两种,一种是暂时的,一种是永久的。 暂时的方法是在Fiddler 左下角输入:

  urlreplace www.demo.com www.dev.demo.com

按下Enter ,所有原先发到www.demo.com 的HTTP Request 就转发到www.dev.demo.com 了。

要清除转发,请在同一位置输入:

  urlreplace

按Enter 就可以了。

更详细的说明请参考Fiddler官方说明文件- QuickExec Reference 。 可以发现urlreplace 做的是整个网址字串的取代,所以可以动手脚的地方不只于此。

永久的方法是修改Fiddler的CustomRules.js ,注意是.js ! 点下Fiddler 上方的Rules ,再点Customize Rules :

如果有安装FiddlerScript Editor ,会用FiddlerScript Editor开启CustomRules.js ,否则会用笔记本开启。 或者也可以到「我的文件 Fiddler2 Scripts 」直接编辑CustomRules.js 。

请先在CustomRules.js 找到:

//code from http://caibaojian.com/fiddler.html
  static function OnBeforeRequest ( oSession : Session ) {
   // ...
 }

在函式OnBeforeRequest 中加入:

  if ( oSession . HostnameIs ( ‘www.demo.com‘ ) )
   oSession . hostname = ‘www.dev.demo.com‘ ;

将CustomRules.js 存档, Fiddler 会自动重新载入CustomRules.js ,原先发到www.demo.com 的HTTP Request 就会自动转发到www.dev.demo.com 。

时间: 2024-10-29 19:06:25

用Fiddler模拟低速网络环境【转】的相关文章

用Fiddler模拟低速网络环境(弱网)

原文链接:http://caibaojian.com/fiddler.html 有时候宽频网路用习惯了- 在开发的过程就比较少去考虑最佳化的问题- 但当有人反应说「你的网页好慢」 甚至当网路速度慢,会造成你的网页跳出什么啊哩不哒的bug时要如何重现呢? 我们可以用Fiddler 这套强大的web Debugging 工具-· Fiddler是一个web调试代理.它能够记录所有客户端和服务器间的http请求,允许你监视,设置断点,甚至修改输入输出数 据,fiddler包含了一个强大的基于事件脚本的

用Fiddler模拟低速网络环境

有时候宽频网路用习惯了… 在开发的过程就比较少去考虑最佳化的问题… 但当有人反应说「你的网页好慢」甚至当网路速度慢,会造成你的网页跳出什么啊哩不哒的bug时要如何重现呢? 我们可以用Fiddler 这套强大的web Debugging 工具… Fiddler是一个web调试代理.它能够记录所有客户端和服务器间的http请求,允许你监视,设置断点,甚至修改输入输出数 据,fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展.更多详细的信息我们可以在fiddler的官

Fiddler抓包使用教程-模拟低速网络环境

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/73467267本文出自[赵彦军的博客] 在无线测试中,网络测试是必不可少的环节,通过网络限速查看页面渲染等效果,能有效保障低速网络下的用户体验和页面性能.Fiddler可通过延迟发送或接收数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果. 开启限速 performance : 表现; 表演; 演技; 执行; Simulate : 模拟; 模仿; 假装,冒充; [生] 拟

使用Fiddler模拟弱网络环境测试

https://blog.csdn.net/swordgirl2011/article/details/51765237 https://www.cnblogs.com/longronglang/p/9524889.html https://blog.csdn.net/chyo098/article/details/81628242 原文地址:https://www.cnblogs.com/jtestroad/p/11173958.html

模拟恶劣网络环境常用的几种解决方案

一.利用Fiddler模拟恶劣网络环境   在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,而服务在面对这种恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug.而在正常的开发自测过程中很难去营造出这种恶劣的网络环境,使得这些bug较难被提前发现和修复.另外一些服务在恶劣网络环境下虽然不会出现不可用的情况,但是用户体检很差,为了优化这个情况下的用户体验,也需要去在本地模拟这种环境来进行调

IOS 模拟不同网络环境 - Network Link Conditioner

转自:http://hulefei29.iteye.com/blog/1782376  可进入Apple开发者下载中心,Network Link Conditioner包含在Hardware IO Tools工具包中,点击下载.  下载安装后,可看到其中有一个Network Link Conditioner.prefPane文件.  点击运行Network Link Conditioner.prefPane后,Network Link Conditioner就会被添加到系统偏好设置的其他分类中.

模拟各种网络环境

作者最近要release一个Android版本, 在网络测试时却遇到了难题.没有各种网络环境.然后网上有Facebook/atc来模拟各种网络.然后各种安装让我望而却步. 我知道IOS是用Network Link Conditioner(NLC)来测试,能否在Android也可以尝试一下呢. 结果让人振奋.将过程分享一下,也许能帮到有跟我一样遇到这种问题的. Mac 下 xcode 自带的 Network Link Conditioner(NLC) NLC 是 xcode 的插件,可以在 "Ha

fiddler扩展模拟弱网络环境设置

今天在qq群中有人问到怎么模拟app弱网络环境,我查了下资料,记得之前做测试的时候是设置fiddler断点,app请求后止于fiddler断点,app一直拿不到响应结果就应该要给出网络请求失败的提示,这种方式太麻烦,对每个接口每次请求都要独立去打个断点,其实fiddler中有个ruler菜单,里面可以扩展修改fiddler的配置,例如现在app有处理10秒接口无返回就提示网络请求失败,可以在fiddler中设置响应时间延迟模拟网络差的情况,做如下设置,那直接上图, 首先我的fiddler版本如下

测试模拟真实网络环境方法

http://jingyan.baidu.com/article/09ea3ede38c295c0aede3926.html 我们的项目,可能会涉及到各种网络环境,比如通过家庭宽带接入.通过手机接入,这些环境相对于我们测试时候使用的网络环境要复杂的多,如何模拟现网可能出现的各种网络情况,使得我们的程序,在各种环境下都能够正常的运行,是我们需要解决的难题. 工具/原料 netem和tc netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域