zoukankan      html  css  js  c++  java
  • 弱网测试(一)Fiddler

    为了测试的准确性,最好关闭不必要的后台及应用。

    一、使用方法

    打开fiddler,默认情况下Rules –> Performances –> Simulate Modem Speeds 是未勾选状态,网络正常。
    当选中此选项(Simulate Modem Speeds)后,网速就会变很慢,打开一个网页要加载很久。这样就实现了弱网络效果
    如果要查看(上传和下载)网速的具体数值,可以用工具speedtest,用于测速的。
    访问http://www.speedtest.cn/网站。支持手机客户端APP下载(windows10也可下载客户端)
     

    二、限速原理

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

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


      2. 如果通过Fiddler ScriptEditor打开文件后,Ctrl + F 查找 m_SimulateModem 标志位;

         如果右侧主页签的FiddlerScript打开的,在Find输入 m_SimulateModem 点击ENTER查找。

    说明:
    request-trickle-delay中的值代表每KB的数据被上传时会被延时多少毫秒
    response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒
    若要模拟上传速度 10KBps 的网络,那么上传延迟时间就是1KB/10KBps=0.1s=1ms,就改成1。
    因为:
    1Byte=8bits(1字节为8比特)
    所以:
    1Byte/sec=8bps,1024kbps=128KB/s,1024Mbps=128MB/s
     
    可以推算出大致的模拟带宽为(带宽统计单位是比特/秒(bps)):
    上传带宽 = 1KB/300ms = (1 * 8/1000) /0.300 ≈ 0.027Mbps
    下载带宽 = 1KB/150ms = (1 * 8/1000) /0.150 ≈ 0.053Mbps
    (1MB = 1024 KB ≈ 1000 KB 这里为了运算简便就用了1000的倍数,忽略误差)
     
    当勾选了Simulate Modem Speeds时,request-trickle-delayresponse-trickle-delay就会自动被设置。

    三、调整网络环境参数

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

    方法一

    查找到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);
    }
     

     方法二

    点击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 进行测速。
     
    注意:每次编辑并保存配置文件后,Rules –> Performances –> Simulate Modem Speeds选项会被取消,需要重新勾选。

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

     
     

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

      Fiddler进行限速较为简单和灵活,配置也较为方便。

          但是由于它是一个应用层的HTTP的代理,只能模拟该层上的行为,对于一些复杂的网络层的丢包、重传等恶劣情况就不能很好的模拟出来;

          而且对于其他协议的应用也不支持

     
     
     
     
    文章来源:https://www.jianshu.com/p/b9e349b8f411
     
  • 相关阅读:
    Vue动画操作
    js this
    flask 操作mysql的两种方式-sqlalchemy操作
    flask 操作mysql的两种方式-sql操作
    ansible批量加用户
    使用 WTForms 进行表单验证的例子
    flask开发用户管理系统wtf版
    [转]Python格式化输出
    scrapy中response.body 与 response.text区别
    flask开发表单
  • 原文地址:https://www.cnblogs.com/may18/p/12523309.html
Copyright © 2011-2022 走看看