Fiddler 八个实用技巧

大家对Fiddler应该不会陌生,但里面有些技巧不见得都会,这里就有八个实用技巧,通过对Fiddler的定制,能提高大家的测试效率。

1、双击Session时,使响应页始终显示到”json”tab页;使请求页始终显示到“webform”tab页

在Fiddler左下角 QUICK EXEC 命令执行窗口,输入

PREFS SET fiddler.ui.inspectors.response.alwaysuse "json"
PREFS SET fiddler.ui.inspectors.request.alwaysuse "WebForms"

双击Session时,使响应页始终显示到”json”tab页;使请求页始终显示到“webform”tab页

2、显示每个Session 的请求IP地址


打开Fiddlerscript 在 main() 中写与以下代码:

FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");

显示每个Session 的请求IP地址

3、修改响应Header中的Content-Type

打开Fiddlerscript在 onBeforeResponse() 中添加

// 如果host中包含tugele,把响应Content-Type修改为 json类型
if (oSession.host.Contains("tugele")){
    oSession.oResponse["Content-Type"] = "application/json;charset=UTF-8";
}

 

4、右键session 直接使用浏览器打开url

打开Fiddlerscript,在 class Handler 中添加

public static ContextAction("Open in Chrome")
function DoOpenInIE(oSessions: Fiddler.Session[]){
    if (null == oSessions){
       MessageBox.Show("Please choose at least 1 session."); return;
    }
    for (var x = 0; x < oSessions.Length; x++){
    //执行cmd 命令
    System.Diagnostics.Process.Start("chrome.exe", oSessions[x].url);
    }
}

 右键session 直接使用浏览器打开url

5、Session列中,显示每个请求的响应时间

打开Fiddlerscript,在 class Handler 中添加

public static BindUIColumn("TimeTaken/ms", 120)
function TimeTaken(oS: Session):String{
    var sResult = "0";
    var t1_ms = oS.Timers.ClientBeginResponse.ToUniversalTime().Millisecond;
    var t1_m = oS.Timers.ClientBeginResponse.ToUniversalTime().Minute;
    var t1_s = oS.Timers.ClientBeginResponse.ToUniversalTime().Second;
    var t1 = t1_m*60*1000 + t1_s*1000 + t1_ms;
 
    var t2_ms = oS.Timers.ClientDoneRequest.ToUniversalTime().Millisecond;
    var t2_m = oS.Timers.ClientDoneRequest.ToUniversalTime().Minute;
    var t2_s = oS.Timers.ClientDoneRequest.ToUniversalTime().Second;
    var t2 = t2_m*60*1000 + t2_s*1000 + t2_ms;
 
    if(t1 >= t2){
        var t3 =  t1 - t2;
        sResult = t3.toString();
        }
    return sResult;
}

 

6、发送请求时,拦截并修改请求的url

打开Fiddlerscript在 onBeforeRequest() 中添加

// 指定包含 biaoqing 的url,替换url中的字符串
if (oSession.fullUrl.Contains('biaoqing')){
   if (oSession.fullUrl.Contains('abc')){
       oSession.fullUrl = oSession.fullUrl.Replace('abc','bcd');
   }
   // 在fiddler log中查看实际的请求
   FiddlerObject.log(oSession.fullUrl);
}

7、模拟弱网环境

菜单栏,打开 Rules > Performance > Simulate Modem speed 开关
打开Fiddlerscript ,修改以下代码中的阈值,调整上下行流量的延迟时间,单位是ms

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"] = "550";
}

8、获取上一个请求的响应内容,作为下一个请求的Body,并使用Fiddler构造该请求

打开 Fiddlerscript,在 onBeforeRequest() 中添加

//解密开关每次打开关闭都要去脚本中修改不太方便,因此把解密开关配置在Fiddler UI菜单栏中
public static RulesOption("Dectryt tugele")
    var tgl: boolean = true;
 
static function OnBeforeResponse(oSession: Session) {
    //tgl为解密开关,配置在UI RULES选项卡中
    if (oSession.host.Contains("tugele") && tgl){
        //获取请求的响应内容string
        var oBody: String = oSession.GetResponseBodyAsString();
        var eBody: String = "content=" + encodeURIComponent(oBody);
        //把String 转为 byte[]类型
        var Content: byte[] = System.Text.Encoding.UTF8.GetBytes(eBody);
        //构造一个header对象
        var oRQH: HTTPRequestHeaders = new HTTPRequestHeaders("/tools/decrypt", ['User-Agent: Fiddler','Host: test.example.com','Content-Length: '+Content.length.ToString(), 'Content-Type: application/x-www-form-urlencoded']);
        //定义请求方法为post
        oRQH.HTTPMethod = "POST";
        //定义oSD(参数需要,一般为空)
        var oSD = new System.Collections.Specialized.StringDictionary();
        //发送请求,生成一个新session
        FiddlerApplication.oProxy.SendRequestAndWait(oRQH, Content, oSD, null);
    }
}

以上就是我总结的一些方法,希望对大家能有所帮助,当然 Fiddler 还有很多其它高级的用法值得探索,也期待你的分享。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fiddler 使用手册是一本详细介绍和指导如何使用 Fiddler 的指南。Fiddler 是一个功能强大的网络调试工具,可以帮助用户监控和调试网络流量。它可以捕获来自浏览器、APP、系统服务等各种应用程序的 HTTP 和 HTTPS 通信数据,并提供了丰富的功能和工具,方便用户对这些数据进行分析和修改。 Fiddler 使用手册通常包含以下几个部分: 1. 简介与安装:在这一部分,手册会简要介绍 Fiddler 的概念和作用,并提供详细的安装步骤,帮助用户快速上手。 2. 主界面导览:手册会详细介绍 Fiddler 的主要界面元素和功能,如会话列表、请求和响应面板等,让用户熟悉 Fiddler 的界面和操作方式。 3. 功能和工具:Fiddler 提供了许多功能和工具,如截获和过滤数据、自动化脚本、重放会话、修改请求和响应等。手册会对这些功能进行详细说明,并提供示例和使用技巧,帮助用户充分发挥 Fiddler 的能力。 4. 高级功能和配置:对于一些高级用户或开发者来说,手册还会介绍一些更复杂的功能和配置,如自定义规则、修改响应头和内容、使用插件等。 5. 常见问题解答:手册通常还会提供一些常见问题和解答,帮助用户解决常见的使用问题和故障。 通过阅读 Fiddler 使用手册,用户可以系统地学习并掌握 Fiddler 的使用方法和技巧,提升网络调试和分析的能力。无论是前端开发人员、后端工程师还是安全研究人员,对于网络数据的监控和分析都是非常重要的,而 Fiddler 作为一款简单易用又功能强大的工具,其使用手册的编写和传播无疑能够帮助更多用户了解和使用 Fiddler

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值