Fiddler 模拟弱网环境测试

为什么要进行弱网环境测试?

由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,导致会出现一些意想不到的非功能性bug,影响用户体检。比如

利用Fiddler,Charles等具有代理服务器功能的网络流量分析软件来实现。

fiddler模拟限速的原理

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

fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。

如何利用Fiddler来模拟恶劣的网络环境?

1、启用 "模拟Modem速度" 

        Rules – Performances – Simulate Modem Speeds       

        默认未勾选,网络正常。勾选该选项后,所有通过Fiddler代理的流量都会变得和多年前的56k小猫时上网一般的慢。 

        注意:开启限速前后,配合测速工具speedtest(speedtest.net 国外/ speedtest.cn 国内),能够看到ping、download、upload都会受到影响,如下图:

限速前
限速后

2、配置限速参数( 网络环境参数)

        采用默认的配置模拟出来的环境过于恶劣,并不一定符合需求,此时就需要对限速的参数进行调整。 


        (法一)Rules – Customize Rules…  

        就会用文本编辑器打开CustomRules.js文件,其默认位于用户目录的文档目录下的\Fiddler2\Scripts 位置,后缀名是js。然后,找到一个m_SimulateModem标志位(如下图),并设置请求延迟、相应延迟 ,单位为ms.

如上,为oSession的两个参数。request-trickle-delay中的值代表1KB的数据被上传时会被延时多少毫秒;response-trickle-delay则对应下载时1KB的数据会被延时多少毫秒。比如你要模拟上传速度500KBps的网络,那上传延迟就是1KB/500KBps=0.002s=2ms,就改成2。

    (法二)或者,直接打开右侧监控面板的“FiddlerScript”选项卡,如下:


        如果本身网速相当快,这里设置的值就可以近似地推算出开启模拟后的上传和下载带宽,比如默认设置下上传延时为300ms下载延时为150ms,可以推算出大致的模拟带宽为:

        → 上传带宽=(1 * 8/1000) /0.300 ≈  0.027Mbps

        → 下载带宽=(1 * 8/1000) /0.150 ≈ 0.053Mbps

        然而实际情况下却得到了两倍于这个值的带宽,推测可能是Fiddler的内部实现上有一些和描述上的不同,为何为造成这个现象现在还不是很清楚,所以上述公式最后还需要修正一个2.0的系数,即:

        → 上传带宽=((1*8/1000)/0.300)*2.0≈0.053Mbps

         → 下载带宽=((1*8/1000)/0.150)*2.0≈0.106Mbps



科普1:用来衡量带宽的单位,指每秒钟传输的二进制位数;

                Mbps 即 Milionbit pro second(百万位每秒);

                Kbps 即 Kilobit pro second(千位每秒);

                bps 即 bit pro second(位每秒);

                1 Mbps =1000  Kbps =1000000 bps 

科普2:而通常软件上显示的速度则是指每秒种传输的字节数(Byte)通常用B(大写)表示;

                MB即百万字节也称兆字节;

                KB即千字节;

                B即字节;

                之间关系为1MB=1024KB=1024*1024B;

                1B=8b;

                →  所以1M带宽即指1Mbps=1000Kbps=1000/8KBps=125KBps;



3、编写自定义脚本

        即扩展或新增CustomRules.js里的逻辑。比如实现新增一个随机延时量,使得网络带宽不是如上一步般恒定为一个低速的值,而是会在一定范围内随机抖动,如下,将代码段1,改为 代码段1 : 


  代码段1:

if (m_SimulateModem) {

// Delay sends by 300ms per KB uploaded.

oSession["request-trickle-delay"] = "500";

// Delay receives by 150ms per KB downloaded.

oSession["response-trickle-delay"] = "500";

}


代码段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,500);

// Delay receives by 150ms per KB downloaded.

oSession["response-trickle-delay"] = ""+randInt(1,500);

}

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

遇到的问题:如上修订后Rules –> Performances 菜单可能会消失,回滚即可,或重启下。


Fiddler模拟恶劣网络环境的局限性

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 现在是智能化时代,每个孩子或多或少都会接触到电子产品:电视、Ipad、手机等等,我个人认为不能完全剥夺孩子探索...
    俐姐奋斗记阅读 297评论 0 5
  • 很早,在认识我的时候你说很想跟我住在一起。 你会不忍想象靠近我,在一起,住在一起的生活。 前前后后两个多月的时候,...
    Ermao阅读 130评论 0 1
  • 人与人之间怎样的建立了关系,为什么的相识,你不去想,她却来了。 推进的明天,还是未来,你不敢想,怕...
    志津阅读 265评论 0 1