Fiddler修改脚本进行对fiddler里的session按照设备进行过滤

转载

需求

在开发/测试过程中有多台设备(PC/手机/模拟器)通过 Fiddler 代理上网时,如何方便地从满屏纷飞的 Session 中筛选出自己关心的那台设备的请求?

设想

通过 FiddlerScript 扩展,在 Session 的右键弹出菜单中添加一项,作为“查看所有设备请求”和“查看单个设备请求”的切换开关。

设计操作流程:

找到自己关心的设备发出的某一条请求,在它的右键弹出菜单里有我们添加的菜单项“开/关过滤单设备请求”。

点击该菜单项后:

若当前状态为“查看所有设备请求”,则切换为“查看单个设备请求”状态,该设备为此条请求的发送者,并清除当前已显示的所有不关心的设备的请求。

若当前状态为“查看单个设备请求”,则切换为“查看所有设备请求”状态。

实现

实现思路:

通过修改 CustomRules.js,在右键弹出菜单上添加一个菜单项来切换请求筛选状态。

每一条请求都带有 ClientIP,它在没有网络切换之类的情况发生时能较好地唯一标识一台设备。

筛选规则是将非来自该 ClientIP 的请求隐藏掉。

实现步骤:

1. 打开 CustomRules.js。

启动Fiddler,依次选择菜单 Rules > Customize Rules...

2. 在OnBeforeRequest前添加如下代码:

// 是否过滤单设备请求标志

public static var gs_FilterDevice: boolean = false;

// 显示请求的设备的

ClientIPpublic static var gs_FilterClientIP: String = null;

static function IsUnMatchClientIP(oS:Session):Boolean {

return (oS.m_clientIP != gs_FilterClientIP);

}

public static ContextAction("开/关过滤单设备请求")

function ToggleDeviceFilter(oSessions: Fiddler.Session[]){

if (gs_FilterDevice) {

gs_FilterDevice = false;

return;

}

var oS: Session = FiddlerApplication.UI.GetFirstSelectedSession();

if (null == oS) return;

if (!gs_FilterDevice) {

gs_FilterDevice = true;

}

gs_FilterClientIP = oS.clientIP;

// 删除当前已显示的非所关心设备的请求

FiddlerApplication.UI.actSelectSessionsMatchingCriteria(IsUnMatchClientIP);

FiddlerApplication.UI.actRemoveSelectedSessions();

}

最终效果如下图:

筛选前

筛选后

缺陷

当前做法有如下缺陷,尚未想到好办法解决:

菜单项并不能标明当前的状态,不知道筛选是开是关,这可以通过查看当前 Session 列表里是否有多种设备的请求来判断。

当设备有网络切换时,比如重启了路由或者离开又回到某 Wifi,ClientIP 可能发生了变化,需要关闭筛选后在设备以新的 ClientIP 产生的请求上右键再次开启筛选。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文章转载于搜狗测试 小编 在平时的工作中,发现使用Fiddler的问题,并解决这些问题,再通过“搜狗测试”总结后...
    夜境阅读 342评论 0 0
  • 原因 在现实项目中,由于开发的经常调试,接口的不稳定,和接口文档的不及时更新,我们选择做接口测试,更多的需要自己抓...
    我为峰2014阅读 3,214评论 1 5
  • 转载地址 image.png 前言 fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的htt...
    菜菜编程阅读 21,641评论 0 28
  • #Fiddler的使用(二):各模块介绍 Fiddler的使用界面和各模块主要功能介绍: 1.Fiddler的菜单...
    seawaveai阅读 1,220评论 0 2
  • 她,曾经清瘦,身单体薄,却用她那绵薄的体温温暖我。 她,曾经历经困苦,却用一颗不变的心守护着、爱护着我。 她爱我,...
    白洋淀人阅读 454评论 0 3