当前位置: 首页 > news >正文

【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. 文档整理:将确认的接口整理成清单

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

http://www.jsqmd.com/news/289595/

相关文章:

  • 2026年四川夜景照明工程哪家好?TOP5亮化工程厂家为您推荐
  • NestJS 中 instanceof 检查失效导致异常处理错误
  • 06-Example目录下,有好多例子可以加强学习
  • 完整教程:RGB 色彩比例(R/(R+G+B)、G/(R+G+B)、B/(R+G+B))的核心含义与应用
  • 泵站选购指南2026:泵站联系方式解析品质之选,雨水提升泵站/钢丝绳牵引格栅/沉水转鼓微滤机,泵站生产厂家口碑推荐
  • 2026年国内知名的CTU货架生产厂家哪个好,可调节货架/背网货架/货架/不锈钢货架,CTU货架生产厂家推荐榜单
  • 2025年度苏州牙周治疗机构权威榜单出炉,口碑之选,儿童牙齿正畸/老人牙齿修复/牙齿种植/修复牙齿,牙周治疗机构哪家好
  • 示例代码解析:使用 item_get_video_pro 获取小红书笔记详情
  • Java计算机毕设之基于Web的智能选择系统(完整前后端代码+说明文档+LW,调试定制等)
  • 2026 年 APP / 小程序开发服务商精选:昊客网络聚焦核心技术,铸就行业翘楚
  • 2026西安大型激光切管机厂家优选指南——本地化服务标杆企业推荐
  • 技术面:如何让你的系统抗住高并发的流量?
  • 上海高精度管道喷涂机设备批发价格大揭秘,谁更实惠?
  • 漂粉精过滤机公司哪家性价比高
  • 探寻售后完善的脱发治疗中医企业,天津市道医实力出众
  • 想了解养老院怎么联系?惠州祥和养老院别错过
  • 2026年超高分子量聚乙烯板靠谱供应商Top10,山峰塑化强势入围!
  • 职场人职业规划 PPT 生成,简约商务模板一键套用
  • Java毕设选题推荐:基于JavaWeb的智能生活选择系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 防关联浏览器有用吗?哪家防关联浏览器好用?
  • 2026年求推荐龙飞云平台,口碑好的公司排名揭晓!
  • 秋冬季特别补水的身体乳哪个品牌好?2026秋冬保湿身体乳横评,长效锁水续航
  • 铜锌分离炉十大优选厂家深度评测,金属回收与冶炼设备采购指南
  • 2026年专业的矿山设计_矿山施工_矿山监理_环境监理公司行业内口碑推荐榜
  • 东京 SEIMITSU FA0011A 6CH PGEN 板
  • 2026西安激光切割行业指南:陕西从邦贸易引领大型激光切管机服务,西安本地化优势尽显
  • 应用材料 0200-05846
  • AbMole小讲堂丨Mitoquinone(MitoQ):线粒体靶向抗氧化剂的作用机制,及其在细胞和动物模型上的科研应用
  • 2026口腔护理领域刷磨仪优质厂家推荐榜
  • 2026年诚信的矿山设计_矿山施工_矿山监理_环境监理公司行业内好评公司推荐榜