fiddler的四大功能

本篇对Fiddler抓包工具的原理、安装、界面不做介绍,此篇讲解Fiddler工具高级使用,适用于有经验的测试员。

Fiddler高级使用

过滤

Fiddler抓包可以完成我们移动开发者的调试测试需求。但是多余的网页请求和手机的其他链接影响我们手机开发的需求。所以我们需要排除其他无用的包,只关注我们指定的域名的请求包。

打开fiddler,找到Filters选项并点击打开。如图所示

默认情况下,这个页面是灰色的,代表默认不过滤任何请求。现在我们勾选Use Filters。

一般常用的有三种过滤条件:

  • 域名过滤,只显示特定域名的记录:

*.baidu.com表示所有的百度二级域名会话;*baidu.com表示一级域名 二级域名的会话。设置好了后一定要点击Actions生效;

  • 类型过滤,一般对各种图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤

.*\.(bmp|css|js|gif|ico|jp?g|png|swf|woff)

需要过滤多少自己直接加入就好了

  • 3.根据返回状态码,比如只想显示200的状态,其他的不显示

3.2断点请求/响应

如图,箭头所指的位置时可以点击的。共三种状态:

空白:不设置断点。

箭头向上:表示断点请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。

箭头向下:表示断点响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。

还有一种打断点的方式

在命令行中输入以下命令:

bpu www.baidu.com (断点请求)

bpuafter www.baidu.com(断点响应)

这种方法只会中断www.baidu.com

断点请求并修改

如图,操作步骤:

  1. 设置断点请求,访问网页
  2. 点击对应的会话
  3. 查看请求报文信息
  4. 修改请求内容
  5. 完成断点,放行,把该请求发送给目标服务器。

图中Break On Response表示把请求发给服务器,但是服务器的响应被fiddler拦截,此时可以修改响应内容(和断点响应类似)。

断点响应并修改

和断点请求操作类似,只是在响应区域修改报文信息即可。

在断点响应时,请注意超时时间。

3.3模拟网络

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

  • 通过应用层或者传输层的代理服务器,通过在代理服务器上设置一些模拟恶劣网络环境的参数,使得通过这些代理服务器的流量都被转化为恶劣网络环境下的流量。如利用Fiddler,Charles等具有代理服务器功能的网络流量分析软件来实现。
  • 通过利用一些更底层的驱动层面的服务,通过控制网卡的收包发包的行为,来模拟恶劣的网络环境。如dummynet的ipfw驱动等。
  • 通过建立一个可控的网关,在网关上部署模拟恶劣环境的相关程序,所有需要借助该网关进行转发的流量都会被模拟为恶劣网络条件。Linux下的netem就提供了这类支持。

这里主要先讲的是第一种手段,即利用Fiddler来模拟恶劣的网络环境,对服务进行测试,这个手段实现简单,较为直观,但是缺点是只能支持那些利用HTTP进行通信和交互的服务。

方式1:

Fiddler本身已经预置提供了模拟Modem速度的选项,其位置位于:

  Rules – Performances – Simulate Modem Speeds

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

方式2:

直接模拟Modem速度实在是慢爆了,事实上就算是在很差信号的情况下,手机移动网络的速度都已经超过了当年的56k Modem速度了,所以采用默认的配置模拟出来的环境过于恶劣,并不一定符合需求,此时就需要对限速的参数进行调整。

  Fiddler本身就提供了一个配置文件供调整这些参数,点击:Rules – Customize Rules…

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

  打开该文件后,可以找到一个m_SimulateModem标志位:

该标志位控制着oSession的两个参数值的设置,当勾选了Simulate Modem Speeds时,request-trickle-delay与response-trickle-delay就会被设置,其中request-trickle-delay中的值代表每KB的数据被上传时会被延时多少毫秒,response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒,

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

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

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

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

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

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

假设我们将两个参数都设置为50,则会得到上下载带宽均为0.32Mbps

方式3:

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

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

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

备注:每次编辑并保存配置文件后,Simulate Modem Speeds选项会被取消,需要重新勾选。

(0)

相关推荐

  • fiddler的四大功能(fiddler作用)

    本文主要介绍工具栏中的一些小功能,这些功能中多数用处不大,但是也有一些可以帮我们提高效率的功能.这也是fiddler教程中最后一篇,加上这些功能的介绍,fiddler教程篇就算完结.Comment此功 ...

  • 微信占内存太大怎么办?关闭微信四大功能轻松瘦身

    关闭微信四大功能轻松瘦身 关闭“附近的人” 在微信“设置”的“通用”中 点击“功能”选项 选择“附近的人” 点击关闭“清除我的位置信息” 和“停用”,立刻多出更多内存 关闭“语音记事本” 同样地,在“ ...

  • 支付宝12306公众服务四大功能图文介绍

    操作方法 01 支付宝12306公众服务功能有四大特点,分别是:信息公告.购票贴士.列车服务和交易管理;支付宝12306公众服务功能让你24小时全方位获取铁路12306的信息. 支付宝12306公众服 ...

  • 红米手机隐藏的四大功能

    小米手机是一款很多人都会使用的手机,旗下的红米更是百元机里的佼佼者,那么红米手机的隐藏功能大家知道吗?下面就让小编来教教大家如何使用红米隐藏的四大功能. 操作方法 01 开发者选项 打开开发者选项可以 ...

  • 支付宝钱包推12306公众服务号 新增四大功能全新上线

    实现电脑端与手机端用支付宝购买火车票服务后,12月16日,支付宝钱包的“支付宝12306公众服务”也宣告正式开通。新上线的12306公众服务号提供了信息公告、购票贴士、列车服务和交易管理,四大菜单功能 ...

  • WIN10系统变卡四大功能一定关掉

    国庆节发布的Win10十月版更新"意外翻车"!好在微软已经找到了问题,并承诺马上更新.但升级到最新版的小伙伴也没好哪儿去,因为他们发现自己的电脑又变"卡"了! ...

  • 95013微话的四大功能

    微话是一款移动互联网电话,今天给大家介绍下下微话4.1的新版功能. 操作方法 01 功能一:在WIFI环境下,没有手机信号照样可以打电话! 关了通信网络(将手机设置成飞行模式),仅连接WiFi,看看会 ...

  • vivo手机指纹的四大功能 每一个都非常便捷

    现在各大品牌手机都配备了指纹功能,指纹解锁都成了各大手机品牌的标配,没有指纹的手机还真不算旗舰,vivo也从2013年xpiay3配备了指纹,vivo更是在x系列,v系列都配齐了指纹解锁功能,那么vi ...

  • 新毒霸路由管理大师官方下载 新毒霸路由管理大师功能介绍

    很多人不知道路由器漏洞是非常危险的,一旦攻击者得手,网民的个人隐私信息、网银资产等均面临巨大威胁 目前金山毒霸正在内测的路由管理大师,可以有效解决家用路由器安全危机。 路由管理大师,具备四大功能,不仅 ...

  • 高德地图小蜜是什么?高德地图导航硬件小蜜功能

    高德地图小蜜是什么?下文将告诉大家高德小蜜功能,此前就有媒体爆料高德即将推出硬件产品,现在终于发布了,名字叫“小蜜”哦~很贴心的感觉呢~让我们来了解其具体功能吧。 从目前曝出的信息来看,该硬件只有一元 ...