fiddler的核心作用

  • 接口测试

    • 发送自定义的请求,模拟小型接口测试
  • 定位前后端bug

    • 抓取协议包,前后端联调
  • 弱网测试

    • 模拟限速操作,弱网,断网
  • 构建模拟测试场景

    • 数据篡改,重定向
  • 前端性能分析及优化

fiddler的工作原理

  • 本地应用与服务器之间的所有请求(request)和响应(response),由fiddler进行转发,此时fiddler以代理服务器的方式存在

  • 由于所有的网络数据都需要经过fiddler,因此,fiddler能够截取数据信息,实现网络数据抓包

fiddler和F12抓包对比

  • 相同点:

    • 都可以对http和https请求进行抓包分析
  • 不同点:

    • F12无法抓取app端的请求,而fiddler工具可以完成

    • F12无法修改请求数据,请求之前和请求之后,而fiddler工具可以完成

    • F12可以在console控制台输入部分命令,方便查看前端的数据信息,可以通过application上面查看一些请求的数据,尤其是涉及到登录或者邀请相关的知识

fiddler基本功能使用

导包

  • File - Export Sessions - All Sessions…

规则设置Rules

  • 隐藏不需要的数据包:勾选Rules下的Hide CONNECTs和Hide 304s

  • 断点调试:Automatic Breakpoints

  • 弱网测试设置:Customize Rules…

fiddler配置证书抓取HTTPS包

  • 打开Tools下面的Options界面中https选项,勾选Capture HTTPS CONNECTs、Decrypt HTTPS traffic以及Ignore sever certificate errors(unsafe)

  • 在connections里面设置配置信息:

  • 重置更新证书

fiddler抓取APP包必须设置

  • 打开Tools下面的Options界面中Connections选项,勾选Allow remote computers to connect

fiddler设置过滤器

设置过滤器的核心作用是只抓取需要的数据包内容

  • 使用过滤器:勾选Filters

  • 隐藏不需要的数据包信息固定格式:
1
REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js|jpeg)(\?.*)?$

fiddler弱网设置

给代理设置不同的网络情况:

  • 2G、3G、4G、5G

第一步:设置网络传输值

  • 点击Fiddler Script,找到以下代码块

  • 2G:

    • 上传:500,下载:400
  • 3G:

    • 上传:100,下载:100
  • 4G:

    • 上传:15,下载:10

第二步:开启弱网测试规则

  • 点击Rules - Performance - Simulate Moderm Speeds

fiddler线上调试

1、先抓包获取响应信息

2、将响应信息复制到.html文件当中(自己新建一个.html文件)

3、修改需要修改的.html文件内容信息

4、Fiddler设置如下(实现调试网页任何内容)

5、点击AutoResponder

6、回到访问的页面进行刷新:shift+F5 (会发现显示修改后的数据)

注意:一定要勾选如图所示,如果不勾选本地文件那么就会关闭调试

fiddler断点调试

1、查看webforms请求参数信息

2、打开 Rules - Automatic Breakpoints - Before Requests(请求前)断点调试

3、对进行抓包的请求重新发送:点击Reolay - 选中断掉调试的包 - 修改参数信息 - Run to Completion

4、查看请求的响应结果

在发送请求之前输入了正确的账号密码

但是请求发送之后被fiddler拦截,修改了账号密码参数信息

通过fiddler放行之后,返回响应信息是错误的账号密码提示内容

发送请求之前,可以执行重新发送:Replay

  • 测试不同的正例,反例抓包获取不同的响应结果

  • 通过多次调试,抓取必带参数信息,不是必带信息进行删除

如何定位前后端的bug?

一般使用抓包工具fiddler进行判断前后端bug

理论上:

  • 第一步如果请求参数有问题,那么就是前端的问题

  • 第二步如果请求参数没有问题,那么返回数据有问题,那么就是后端的问题

  • 局限性:没有详细接口文档的情况下,是无法判断接口参数是否有问题

实际上:

  • 查看响应结果

  • 查看页面错误信息

  • 综合进行对比

  • 结合需求文档和日志信息

  • 比如异常类的信息:一定是后端问题

总结:

  • 通过fiddler可以抓取请求和响应参数,通过对参数进行分析,可以定位前后端问题

  • 例如在测试登录接口的时候,输入正确的手机号和密码,但是前端提示:请输入正确的手机号或密码

  • 仅仅通过界面提示我们只能描述bug现象,但不能分析出前后端具体的问题

  • 假设通过抓包发现由于前端参数名错误或者参数值为空,从而导致后台报错

  • 那这个问题就是前端的问题,将参数数据和接口文档中的对应报文数据作为附件上传

  • 可以解决问题的效率


具体可以参考CSDN:抓包工具Fiddler的下载、安装、配置、基本使用