news 2026/9/30 11:33:04

【Fiddler】脚本过滤识别模块接口过滤和标记,梳理业务影响范围实践指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Fiddler】脚本过滤识别模块接口过滤和标记,梳理业务影响范围实践指南

作为资深测试工程师,我来详细指导你如何使用Fiddler进行接口抓包和分析,特别是在不知道接口模块归属的情况下。

一、Fiddler基础设置

1. 安装与初始配置

1. 下载安装Fiddler Classic(免费版足够使用) 2. 首次启动需要进行HTTPS解密设置: Tools → Options → HTTPS ✓ Capture HTTPS CONNECTs ✓ Decrypt HTTPS traffic 安装证书(按提示操作) 3. 重启Fiddler生效

2. 基础过滤设置

在右侧Filters选项卡中:

1. Use Filters:勾选启用 2. Hosts区域: - No Zone Filter:默认 - No Host Filter:默认 - Hide the following Hosts:可隐藏已知的非目标域名 3. Request Headers: ✓ Hide if URL contains:可隐藏静态资源(.js,.css,.png等)

二、脚本方式过滤(重点)

1. 打开自定义脚本

点击菜单栏:Rules → Customize Rules(或按Ctrl+R)
这会打开CustomRules.js文件

2. 常用过滤脚本示例

示例1:只抓取特定端口的流量
// 在OnBeforeRequest函数中添加staticfunctionOnBeforeRequest(oSession:Session){// 只抓取80和443端口的请求if(oSession.port!=80&&oSession.port!=443){oSession["ui-hide"]="true";// 隐藏非HTTP/HTTPS请求}}
示例2:按URL关键词过滤
staticfunctionOnBeforeRequest(oSession:Session){varhideSession=false;// 隐藏静态资源varstaticExtensions=[".js",".css",".png",".jpg",".gif",".ico",".woff",".woff2"];for(vari=0;i<staticExtensions.length;i++){if(oSession.PathAndQuery.toLowerCase().indexOf(staticExtensions[i])>-1){hideSession=true;break;}}// 只显示API接口(根据常见API路径模式)varapiPatterns=["/api/","/v1/","/v2/","/rest/","/service/","/gateway/"];varisApi=false;for(vari=0;i<apiPatterns.length;i++){if(oSession.PathAndQuery.toLowerCase().indexOf(apiPatterns[i])>-1){isApi=true;break;}}if(!isApi){hideSession=true;}if(hideSession){oSession["ui-hide"]="true";}}
示例3:按响应内容类型过滤
staticfunctionOnBeforeResponse(oSession:Session){// 只显示JSON和XML响应(通常是API接口)varcontentType=oSession.oResponse["Content-Type"];if(contentType){if(!contentType.toLowerCase().contains("application/json")&&!contentType.toLowerCase().contains("application/xml")&&!contentType.toLowerCase().contains("text/xml")){oSession["ui-hide"]="true";}}}
示例4:复杂过滤逻辑 - 识别未知模块接口
// 定义一个函数来识别和分类接口staticfunctionClassifyAndFilterInterface(oSession:Session){varurl=oSession.PathAndQuery.toLowerCase();varhost=oSession.host.toLowerCase();// 模块关键词映射(可根据实际情况扩展)varmoduleKeywords={"user":["user","login","register","profile","account"],"order":["order","cart","checkout","payment"],"product":["product","item","goods","sku","inventory"],"system":["config","system","setting","log"],"content":["article","news","content","blog"]};// 检查URL是否包含模块关键词vardetectedModule="unknown";for(varmoduleinmoduleKeywords){for(vari=0;i<moduleKeywords[module].length;i++){if(url.indexOf(moduleKeywords[module][i])>-1){detectedModule=module;// 为会话添加自定义标记oSession["ui-customcolumn_module"]=module;break;}}if(detectedModule!=="unknown")break;}// 根据模块进行过滤(例如只显示特定模块)varmodulesToShow=["user","order","product"];// 只显示这些模块if(modulesToShow.indexOf(detectedModule)===-1){oSession["ui-hide"]="true";}returndetectedModule;}// 在请求时调用staticfunctionOnBeforeRequest(oSession:Session){ClassifyAndFilterInterface(oSession);}

三、高级抓包策略

1. 设置断点拦截特定请求

// 在CustomRules.js中添加staticfunctionOnBeforeRequest(oSession:Session){// 为特定接口设置断点if(oSession.uriContains("login")||oSession.uriContains("checkout")){oSession["x-breakrequest"]="keyword";// 请求时中断}}

2. 自动标记和注释

staticfunctionOnBeforeRequest(oSession:Session){// 根据接口特征自动添加注释if(oSession.uriContains("/api/v1/users")){oSession["ui-comments"]="用户模块 - 获取用户列表";}if(oSession.uriContains("/api/v1/orders")){oSession["ui-comments"]="订单模块 - 创建订单";}}

3. 批量导出接口信息

// 创建导出脚本staticfunctionExportAPIs(){varapiList=[];for(vari=0;i<FiddlerObject.UI.lvSessions.Items.Count;i++){varoSession=FiddlerObject.UI.lvSessions.Items[i].Session;if(!oSession["ui-hide"]){apiList.push({"Method":oSession.RequestMethod,"URL":oSession.fullUrl,"Module":oSession["ui-customcolumn_module"]||"unknown","Comments":oSession["ui-comments"]||""});}}// 保存为JSON文件varjsonStr=JSON.stringify(apiList,null,2);FiddlerObject.utilSaveTextFile("ExportedAPIs.json",jsonStr);}

四、实际工作流程建议

第1步:全局抓包

1. 清空现有会话(Ctrl+X) 2. 禁用所有过滤器,开始录制 3. 完整操作一遍被测系统所有功能 4. 停止录制

第2步:逐步分析过滤

1. 先用基础过滤器隐藏静态资源 2. 添加自定义脚本逐步细化过滤条件 3. 根据域名、URL模式、响应类型等特征分组

第3步:接口分类整理

1. 按功能点分组接口 2. 使用Fiddler的"Comments"功能标记接口用途 3. 导出到Postman或测试工具中

第4步:验证与确认

1. 对可疑接口进行复测验证 2. 与开发人员确认接口归属和用途 3. 建立接口清单文档

五、实用小技巧

  1. 快捷键:

    • F12:开始/停止捕获
    • Ctrl+X:清空会话列表
    • Ctrl+F:查找接口
  2. 会话标记:

    • 右键会话 → Mark → 选择颜色分类
    • 使用不同颜色区分不同模块
  3. 批量操作:

    • Shift/Alt+多选 → 右键批量操作
    • 可批量复制URL、导出到文件等
  4. 时间线分析:

    • 使用Statistics查看接口性能
    • Timeline查看请求时序关系

六、建议的工作步骤

  1. 先宽后严:开始时不设置过多过滤,先捕获所有流量
  2. 模式识别:观察请求规律,寻找URL模式
  3. 逐步过滤:从明显非API请求开始过滤
  4. 验证归类:选择代表性接口验证功能,确认所属模块
  5. 文档整理:将确认的接口整理成清单

这种方法可以帮助你在不了解系统架构的情况下,有效识别和归类接口,为后续的自动化测试打下基础。需要进一步细化哪部分内容?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 21:59:17

职场人职业规划 PPT 生成,简约商务模板一键套用

我的职业规划PPT生成秘籍&#xff1a;6款神器助你轻松搞定职场展示 作为一位在PPT行业摸爬滚打五年的内容创作者&#xff0c;我经历过无数次熬夜改PPT的崩溃时刻——尤其是当需要制作职业规划PPT时&#xff0c;既要展现专业度又要突出个人特色&#xff0c;简直像在走钢丝。直到…

作者头像 李华
网站建设 2026/9/26 3:39:43

在吴忠,与专业同行:羽毛球进阶之路的科学开启

在吴忠&#xff0c;有一片备受羽毛球爱好者青睐的运动天地——吴忠码上羽毛球俱乐部。这里不仅是挥洒汗水、锻炼身体的场所&#xff0c;更是一个在国家二级运动员韩宁波教练的引领下&#xff0c;科学、系统地解锁羽毛球技能&#xff0c;感受运动深层乐趣的成长空间。 专业引领…

作者头像 李华
网站建设 2026/9/26 20:57:18

从春晚AI迁移看教育行业智能化基础设施变革

近日&#xff0c;2026年春晚宣布与火山引擎、豆包达成独家AI云合作&#xff0c;首次将AI作为全链路技术基础设施。这不仅是一场技术展示&#xff0c;更标志着国家级工程正式将“数字大脑”升级为“智能系统”。作为专注为教育机构、知识创业者提供数字化服务的创客匠人&#xf…

作者头像 李华
网站建设 2026/9/27 18:21:44

mHC改进方法:自适应动态流形约束超连接方法探索

文章目录 mHC改进方法:自适应动态流形约束超连接(AD-mHC) 一、改进背景与核心痛点 二、AD-mHC核心改进设计 (一)自适应动态流形约束机制 (二)优化型Sinkhorn-Knopp算法(O-SK算法) (三)跨流特征权重自适应机制 三、配套工程优化策略 (一)分层内存管理 (二)分布式…

作者头像 李华