[学习笔记] fiddler 模拟网络环境

96
亭子青年
2018.06.20 13:45 字数 401

简介

难能可贵的是执着与坚持

使用fiddler模拟网络环境

  1. 点击菜单栏Rules=》Customize Rules,打开FiddlerScript,也可以直接在fiddler的右边窗口找到“FiddlerScript”标签打开。


    打开script的方式1.png

    打开script的方式2.png

    备注:其默认位于用户目录的文档目录下的\Fiddler2\Scripts 位置,后缀名是js,其内容实质是JScript.NET——微软对ECMAScript规范的实现,与日常使用的javascript是属于同一个规范下的,但是在扩展的细节实现存在一定的不同。

  2. 打开文件,可以搜索“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的数据会被延时多少毫秒
默认是300和150,大致模拟出来的带宽如下

上传带宽=(1*8/1000)/0.300≈0.053Mbps 
下载带宽=(1*8/1000)/0.150≈0.027Mbps

实际贷款是在计算所得的基础上乘2。也就是说

上传带宽=((1*8/1000)/0.300)*2.0≈0.106Mbps 
下载带宽=((1*8/1000)/0.150)*2.0≈0.053Mbps

至于为什么,没有研究。
比如我模拟一个2M左右的带宽的设置如下

if (m_SimulateModem) {
   // Delay sends by 300ms per KB uploaded.
   oSession["request-trickle-delay"] = "8";
   // Delay receives by 150ms per KB downloaded.
   oSession["response-trickle-delay"] = "8";
模拟2M带宽.png

关于怎么看上传和下载带宽的问题,可以在点击http://www.speedtest.net/这里进行测试。

  1. 设置fiddler的Rules,注意只有设置改rule,才会使用方才配置的参数。


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

end

抓包工具