Fiddler- 数据Mock(转)

本文探讨了抓包工具在API分析、接口调试等方面的应用,介绍了Wireshark、Fiddler等工具的特点,并深入讲解了Fiddler的工作原理及其在数据修改、模拟请求中的使用技巧。同时,文章还分享了如何利用Fiddler进行HTTP数据对比分析、模拟网速等高级测试方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、为什么要抓包?
  1.API分析(数据异常,流量,bug等等)
  2.接口调试(研发,测试(正常&异常))
二、抓包工具很多,适合自己的才好
  1.Wireshark( ios&and ),流量监控,无需导入(wifi&数据流量)
  2.Fiddler( ios&and ),设置代理,流量要导入(无法抓2g/3g)
  3.Safari web( ios h5 ),流量监控,无需导入(性能指标,页面元素以及代码调试)
三、原理
  启动fiddler,程序将会把自己作为一个代理,所以的http请求在达到目标服务器之前都会经过fiddler,同样的,所有的http响应都会在返回客户端之前流经fiddler。
    A.手机客户端发请求给server
    B.Server端返回结果给手机客户端。这是一个交互
    C.手机客户端向server端发送确认消息,这时候server端收到客户端发送的确认消息,不需要再做任何处理。
四、Fiddler AutoResponder

  

五、保存服务器返回body内容并进行json编辑和校验

通过拦截服务器请求,对原数据修改后再次返回到客户端,完全可以模拟我们自己想要的任何数据,尤其是对一些依赖开发协助修改的数据。

六、数据修改后,没有生效?

  Json格式及内容校验是否正确
  规则设置是否正确
  本地json路径设置
  绝对匹配规则尽量删除,否则切换设备或账号后命中失效
七、其它模拟方法?
  1.快捷键直接拦截请求,操作简单,但是需要拦截所有依赖请求
    例如:Before Requests
    优点:简单操作,所见即所得
    缺点:适用于一次请求,下次重新打断;有响应时间,超过相应时间即失效
  2.AutoResponder,修改query规则,可以是一个文件,也可以是正则表达式,只要符合该规则,即可自动返回结果,边改边调试。
八、其它测试技巧
  1.模拟网速(类似于ios开发者工具)
  2.http以及通信量统计
  3.http数据对比分析
  4.API测试以及并发请求
  5.展示所在节点server ip(修改本地js代码,ctrl+r)

转载于:https://www.cnblogs.com/banml/p/10980703.html

### FiddlerMock 功能的使用方法 FiddlerMock 功能允许用户拦截和模拟 HTTP/HTTPS 请求与响应,从而在开发或测试过程中验证特定场景的行为。以下是关于如何在 Fiddler 中配置 Mock 功能以实现请求拦截和数据模拟的详细说明。 #### 1. 启用自动响应功能 为了使用 Mock 功能,首先需要启用 Fiddler 的 **AutoResponder** 模块。 - 打开 Fiddler,点击菜单栏中的 **Rules** -> ** Customize Rules...**。 - 在弹出的脚本编辑器中,找到 `OnBeforeRequest` 函数[^1]。 - 确保以下代码存在并正确配置: ```javascript if (oSession.uriContains("mockdata")) { oSession["ui-color"] = "green"; // 设置会话颜色以便区分 oSession.utilCreateResponseAndBypassServer(); oSession.ResponseHeaders.Add("Content-Type", "application/json"); oSession utilSetResponseBody("{\"status\":\"success\",\"message\":\"This is a mock response\"}"); } ``` 上述代码实现了对包含关键字 `mockdata` 的请求进行拦截,并返回自定义的 JSON 响应。 #### 2. 配置 AutoResponder 规则 - 到 **AutoResponder** 标签页(通常位于右侧窗格)。 - 点击 **Enable rules** 复选框以激活规则。 - 点击 **Add Rule** 按钮,添加一个新的规则。 - 在规则中指定匹配条件,例如 URL 包含某个特定路径或参数[^1]。 - 设置响应文件路径或直接输入响应内容。例如,可以将响应内容设置为以下 JSON 数据: ```json { "status": "success", "data": { "id": 123, "name": "Mocked Data" } } ``` #### 3. 使用断点功能增强 Mock 控制 Fiddler 提供了全局和局部断点功能,可以进一步增强对请求的控制。 - 在 **Request Builders** 标签页中创建一个请求模板。 - 在请求发送前设置断点(通过右键菜单选择 **Break before request** 或 **Break after response**)。 - 当断点触发时,可以在 Inspector 窗口中修改请求或响应内容。 #### 4. HTTPS 解密支持 如果需要 Mock HTTPS 请求,必须确保 Fiddler 已正确配置 HTTPS 解密。 - 到 **Tools** -> **Options** -> **HTTPS**。 - 勾选 **Decrypt HTTPS traffic** 和 **Ignore server certificate errors**。 - 安装 Fiddler 的根证书以避免浏览器或应用提示安全警告[^1]。 #### 5. 快捷键辅助操作 Fiddler 提供了一些快捷键来简化 Mock 测试过程: - **Shift+R**:重放选定的请求。 - **Ctrl+X**:清除所有会话记录。 - **Shift+F5**:强制刷新请求而不使用缓存。 --- ### 示例代码 以下是一个完整的示例,展示如何通过 Fiddler 的脚本功能拦截请求并返回模拟数据: ```javascript static function OnBeforeRequest(oSession: Session) { if (oSession.uriContains("api.example.com/data")) { oSession["ui-color"] = "orange"; // 设置会话颜色 oSession.utilCreateResponseAndBypassServer(); // 拦截请求并跳过服务器 oSession.ResponseHeaders.Add("Content-Type", "application/json"); oSession.utilSetResponseBody("{\"mock\":\"true\",\"value\":\"Simulated data\"}"); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值