Fiddler 八个实用技巧

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

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

fiddler抓包教程:全网抓包天花板教程,B站讲的最详细的Fiddler/Charles抓包教学视频。2小时包你学会_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1tv4y1575S/?spm_id_from=333.999.0.0
在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

 fiddler抓包教程:全网抓包天花板教程,B站讲的最详细的Fiddler/Charles抓包教学视频。2小时包你学会_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1tv4y1575S/?spm_id_from=333.999.0.0

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){//获取请求的响应内容stringvar 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']);//定义请求方法为postoRQH.HTTPMethod = "POST";//定义oSD(参数需要,一般为空)var oSD = new System.Collections.Specialized.StringDictionary();//发送请求,生成一个新sessionFiddlerApplication.oProxy.SendRequestAndWait(oRQH, Content, oSD, null);}
}

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

 fiddler抓包教程:全网抓包天花板教程,B站讲的最详细的Fiddler/Charles抓包教学视频。2小时包你学会_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1tv4y1575S/?spm_id_from=333.999.0.0

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中科院预警名单

2023年预警名单 (fenqubiao.com) 如果论文投稿到中国科学院预警期刊,可能会面临以下情况: 1. 预警期刊一般审稿周期长,容易出现迟迟不见回音的情况。 2. 这类期刊的学术质量参差不齐,接受论文的学术标准可能不严格。 3. 预警期刊发表论文的学术影响力比较有限,不容易为作者…

【操作系统】聊聊什么是CPU上下文切换

对于linux来说&#xff0c;本身就是一个多任务运行的操作系统&#xff0c;运行远大于CPU核心数的程序&#xff0c;从用户视角来看是并发执行&#xff0c;而在CPU视角看其实是将不同的CPU时间片进行分割&#xff0c;每个程序执行一下&#xff0c;就切换到别的程序执行。那么这个…

Controller统一异常处理和yaml配置

目录 Controller统一异常处理 url解析 static下静态资源文件的访问 配置类 如何访问static下的资源文件 yaml基础语法 注解赋值 批量注入 单个注入 Controller统一异常处理 Controller统一异常处理ControllerAdvice&#xff1a;统一为Controller进行"增强" …

golang在goland编译时获取环境变量失效

在golang中&#xff0c; 我们通常使用os包来获取环境变量&#xff0c;如&#xff1a; os.Getenv() os.LookupEnv() 等。 但如果我们使用goland编译器&#xff0c;在编译是&#xff0c;这时操作环境变量&#xff0c;会发现os包读取到的环境变量值不变&#xff1a; 新增后&am…

ubuntu20.4 更新中科大软件源

打开软件源配置文件以编辑&#xff1a; sudo nano /etc/apt/sources.list在编辑器中&#xff0c;你会看到当前的软件源列表。将这些源更改为一个可用的源&#xff0c;例如使用中国科大源&#xff1a; deb http://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe …

(Clock Domain Crossing)跨时钟域信号的处理 (自我总结)

CummingsSNUG2008Boston_CDC.pdf 参考&#xff1a; 跨时钟域处理方法总结–最终详尽版 - love小酒窝 - 博客园 跨时钟域&#xff08;CDC&#xff09;设计方法之单bit信号篇&#xff08;一&#xff09; | 电子创新网赛灵思社区 孤独的单刀_Verilog语法,FPGA设计与调试,FPGA接口与…

LVGL移植win端模拟显示流畅解决方案-使用 SquareLine 生成前端 UI 文件

lvgl_port_win_vscode 在 win 平台对 lvgl 方便的进行模拟显示&#xff0c;程序文件结构清晰&#xff0c;lvgl with SDL2&#xff0c;cmake 构建&#xff0c;VsCode 一键运行&#xff0c;使用 SquareLine 生成前端 UI 文件&#xff0c;win 上直接跑。 相比官方的 lvgl 移植到…

不同层设置不同学习率

使用预训练模型时&#xff0c;可能需要将 &#xff08;1&#xff09;预训练好的 backbone 的 参数学习率设置为较小值&#xff0c; &#xff08;2&#xff09;而backbone 之外的部分&#xff0c;需要使用较大的学习率。 from collections import OrderedDict import torch.nn …

Redis 集合(Set)快速指南 | Navicat

Redis 支持通过多种数据类型来存储项目集合。其中&#xff0c;包括列表、集合和哈希。上周的博文介绍了列表&#xff08;List&#xff09;数据类型并重点介绍了一些用于管理列表&#xff08;List&#xff09;的主要命令。在今天的文章中&#xff0c;我们将转向关注集合&#xf…

P-MVSNet ICCV-2019 学习笔记总结 译文 深度学习三维重建

文章目录 5 P-MVSNet ICCV-20195.0 主要特点5.1 文章概述5.2 研究方法5.2.1 特征提取5.2.2 学习局域匹配置信5.2.3 深度图预测5.2.4 Loss方程MVSNet系列最新顶刊 对比总结5 P-MVSNet ICCV-2019 深度学习三维重建 P-MVSNet-ICCV-2019(原文、译文、批注) 下载 5.0 主要特点 …

【MySQL基础】--- 约束

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、什么…

Ceph入门到精通-ceph pool 删除导致 misplaced 的原因

misplaced 的原因 Ceph中的misplaced对象是指将对象&#xff08;或对象的副本&#xff09;存储在错误的位置上&#xff0c;这可能会导致性能下降或数据不一致的问题。在删除Ceph池时&#xff0c;可能会导致misplaced的原因有以下几个&#xff1a; 删除过程中的操作失误&#x…

Python 打印文本进度条

""" 打印文本进度条知识点&#xff1a;1、字符串运算&#xff0c;注意只能适用于加法、乘法&#xff0c;例如&#xff1a;123 123 123123例如&#xff1a;123 * 3 1231231232、循环语句while、for3、条件语句if4、重点&#xff1a;转义字符\r&#xff0c;可以…

【springMvc】自定义注解的使用方式

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》 ⛺️ 生活的理想&#xff0c;为了不断更新自己 ! 1.前言 1.1.什么是注解 Annontation是Java5开始引入的新特征&#xff0c;中文名称叫注解。 它提供了一种安全…

python的多线程多进程与多协程

python的多线程是假多线程&#xff0c;本质是交叉串行&#xff0c;并不是严格意义上的并行&#xff0c;或者可以这样说&#xff0c;不管怎么来python的多线程在同一时间有且只有一个线程在执行(举个例子&#xff0c;n个人抢一个座位&#xff0c;但是座位就这一个&#xff0c;不…

Unity中UI组件对Shader调色

文章目录 前言一、原理在Shader中直接暴露的Color属性&#xff0c;不会与UI的Image组件中的Color形成属性绑定。因为UI的Image组件中更改的颜色是顶点颜色&#xff0c;如果需要在修改组件中的颜色时&#xff0c;使Shader中的颜色也同时改变。那么就需要在应用程序阶段传入到顶点…

gin 基本使用

gin 初体验 import ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/ping", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"message": "pong",})})r.Run() }gin 路由接受一个 type …

数据结构和算法(8):搜索树(二叉搜索树和AVL树)

查找 所谓的查找或搜索&#xff0c;指从一组数据对象中找出符合特定条件者&#xff0c;这是构建算法的一种基本而重要的操作。其中的数据对象&#xff0c;统一地表示和实现为 词条&#xff08;entry&#xff09; 的形式&#xff1b;不同词条之间&#xff0c;依照各自的 关键码…

Golang slice 通过growslice调用nextslicecap计算扩容

先来看一段代码 code: e : []int64{1, 2, 3}fmt.Println("cap of e before:", cap(e))e append(e, 4, 5, 6, 7)fmt.Println("cap of e after:", cap(e))output:cap of e before: 3 cap of e after: 8 为什么容量是8&#xff1f; append了的4个元素&…

Python:使用PySimpleGUI中sg.Input控件获取数据plot导致yticks错乱

sg.Input获取y轴数据代码 sg.Text(First Read:, font("Times New Roman", 9)),sg.Input(key-first_read-, size(25, 1), default_text0,0,0, justificationcenter, font("Times New Roman", 9), expand_xTrue), sg.Text(Second Read:, font("Times Ne…