抓包工具fiddler都有哪些高级功能,一文带你全面了解它( 三 )


抓包工具fiddler都有哪些高级功能,一文带你全面了解它

文章插图
 
其它功能:
当添加进来的请求,我们可以右击对其进行各种操作,如图:
抓包工具fiddler都有哪些高级功能,一文带你全面了解它

文章插图
 
  • Remove : 删除请求
  • Promote : 向上移动
  • Demote :向下移动
  • Clone : 克隆一条心的请求
  • Set Latency : 设置延迟时间 ,点击后会弹出个输入框,在输入框输入时间后,相应的时间后才会返回请求。注意时间单位为毫秒
  • Set Comment :设置备注
  • Edit Response :编辑响应 ,上面我们演示过这个功能
  • Generate File : 生成文件
  • Edit File With ... :通过其它方式编辑,如通过notepad++编辑都是可以的。
  • Open URL :在浏览器中直接打开这个地址
  • Group :设置分组
  • UnGroup : 取消分组
  • Find : 查找
  • Export All :导出,通过这个功能可以将修改的请求备份到本地,使用导入即可。
说在最后,这个功能的使用范围很广,它可以修改页面也可以修改接口,也就是说无论前后端人员的某一端人员没有按时提交功能时,我们都可以使用其模拟返回数据。比如当接口不能正常提交前端或测试人员时,我们就可以通过这个功能,模拟其返回值。这样就可以不依赖接口了而进行接口调试或测试了 。这正是我们开头说的mock测试。
FiddlerScript在使用fiddler的一些功能中,很少会使用到FiddlerScript这个功能 。但经过研究后,发现这个功能实在是强大,不敢说它能实现目前fiddler的全部功能,但是大致过了一遍,主要功能都可以通过它来进行扩展。那么问题来了,既然fiddler已经提供了很完善丰富的功能,那么我们为什么还会用使用这个功能呢?这就像问使用工具和代码的区别,使用工具简单易用,但不易扩展;反之,使用代码扩展性强,更能满足我们的需求,但是学习成本高 。
功能入口
在fiddler中有两个入口都可以进入到FiddlerScript中,具体如下:
抓包工具fiddler都有哪些高级功能,一文带你全面了解它

文章插图
 
打开的文件其实是FiddlerScript的Rules文件,通过修改此文件,可以创建一些菜单命令,也可以修改或添加新命令。
此文件的原始文件名为SampleRules.js,位于...ProgramsFiddlerScripts文件夹下,当我们打开FiddlerScript编辑其内容时,它将在...DocumentsFiddler2Scripts文件夹下创建一个名为CustomRules.js的文件 。也就是说我们修改的文件并非是源文件,而是它拷贝出的一个副本 。运行时也是这个副本文件(CustomRules.js)
功能介绍
打开的文件,其实就是一个Handlers类,这个类中有很多方法,但主要使用的内容包括四部分,分别是菜单命令以及三个主要方法(OnBeforeRequest,OnBeforeResponse,OnExecAction) 。
抓包工具fiddler都有哪些高级功能,一文带你全面了解它

文章插图
 
菜单命令
菜单命令其实就是指在Rules下拉列表中的一些选项,这些选项和代码中是一一对应的,通过修改代码,也会影响菜单的显示 。
抓包工具fiddler都有哪些高级功能,一文带你全面了解它

文章插图
 
这些菜单选项中最为常用的就是Performance-Simulate Modem Speeds,通过它进行限速处理,从而进行弱网测试,网络不稳定的测试 。
设置弱网
选择
Rules-Performance-Simulate Modem Speeds后,下面的这部分代码将被执行到,我们可以通过修改其后的值来模拟网络带宽 。
if (m_SimulateModem) {    //每延迟300ms发送1kb的数据,也就是每1s发送3kb的数据    oSession["request-trickle-delay"] = "300";   // 每延迟150ms下载1kb的数据   oSession["response-trickle-delay"] = "150"; }为了更真实的模拟网络情况,我们也可以将后面的值设置成动态值 。每发送一次数据就获取一个动态值,从而模拟网络抖动的情况,这样就可以进行网络不稳定的模拟测试。
//模拟网络抖动static function randInt(min, max) {    return Math.round(Math.random()*(max-min)+min); }static function OnBeforeRequest(oSession: Session) {  ...    if (m_SimulateModem) {    oSession["request-trickle-delay"] = ""+randInt(1,300);   oSession["response-trickle-delay"] = ""+randInt(1,150); }}


推荐阅读