一文了解Fiddler 抓包工具

Fiddler 抓包

为什么要抓包:(1)发现了一个bug,提交前端或后端,开发不认账?(2)要做接口测试,还没有来得写接口文档 (3)想看看竟品的接口?

抓包看下接口响应时长,是不是后台出现性能问题* 需要测试弱网环境下App的体验?抓包工具可设置流量限制,可设置接口堵塞* 想改变某接口的响应报文?想多次重发某一请求,但App业务流程有限制?可以试试抓包工具提供的功能

工具:Fiddler, Charles, 浏览器开发工具(F12)

原理

相当于中间代理服务器,记录客户端和服务器的http请求(只能抓http 和https),允许你监视,设置断点,甚至修改输入输出。基于.net。

web 端抓包

1s=1000ms

  • inspectors里面看请求信息和响应结果:关注Headers里面的cookies 和content type

    • 请求
web版配置

PC端Https证书设置

在这里插入图片描述


→ 连接设置 ( allow remote computer → 用于app端抓包)

App端抓包

参考凡猫赵老师的讲解视频:
Android配置Fiddler证书
Android 模拟器配置代理

Fiddler 设置断点(修改请求内容或响应结果)

也可以是mock数据,就是自己造一个数据,fiddler拦截原本发送的数据,换成自己编辑的

  • WHY?
    比如一个购买的金额输入框,输入框前端做了限制10-100,那么我们测试的时候,需要测试小于10的情况下。很显然前端只能输入大于10的。这是我们可以先抓到接口,修改请求参数,直接绕过前端,传一个小于10的数,检查服务端的功能是否OK;
    也就是说接口测试其实是不需要管前端的,主要测后端的功能。

  • Fiddler设置断点,可以修改HTTP请求头信息,如修改Cookie,User-Agent等
    也可以修改请求数据,突破表单限制,提交任意数字,如充值最大100,可以修改成10000
    还可以拦截响应数据,修改响应体,如修改服务端返回的页面数据

  • 断点的两种方式

    • before response:这个是打在request请求的时候,未到达服务器之前
    • after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。
  • 全局和局部

    • 全局:在菜单栏Rules-》Automatic BreakPoints的下拉菜单里选择设置断点的方式(Before Requests,After Responses),取消断点选择Disabled。这种设断点的方式是对所有url生效。
    • 单个断点:已经知道了某个接口的请求地址,这时候只需要针对这一条请求打断点调试,在命令行中输入指令就可以了
      • 请求前断点(before response): bpu url 回车
      • 取消断点,在命令行输入: bpu 回车就可以了
      • 响应后断点(after requests): bpafter url 回车
      • 取消断点,在命令行输入: bpafter 回车就可以了
  • 命令行其它相关指令
    Bpafter, Bps, bpv, bpm, bpu
    Bpafter xxx: 中断 URL 包含指定字符的全部 session 响应
    Bps xxx: 中断 HTTP 响应状态为指定字符的全部 session 响应
    Bpv xxx: 中断指定请求方式的全部 session 响应
    Bpm xxx: 中断指定请求方式的全部 session 响应 、、同于 bpv xxx
    Bpu xxx:与bpafter类似

  • 会话保存:为什么要保存会话呢?举个很简单的场景,你在上海测试某个功能接口的时候,发现了一个BUG,而开发这个接口的开发人员是w外地的开发,如果我们截图,就不是很方便。如果我们保留会话就会很方便的。

    1. 抓到登录的请求会话
    2. 点左上角File>Save>SelectedSessions>asText,保存到电脑上就是文本格式的

赵老师讲解视频

Fiddler过滤指定域名

1、方法一:
切换到fiddler右侧窗口的Filters选项卡,勾选顶部的“Use Filters”,找到Hosts区域,设置以下三个选项
在这里插入图片描述

  • 第一项有三个选项,不做更改:
    “No zone filter”
    “Show Only Intranet Hosts”
    “Show Only Internet Hosts”
  • 第二个选项是只监控以下网址,如只监控百度,在下面的输入框里填上 www.baidu.com
    “No Host Filter”不设置hosts过滤
    “Hide The Following Hosts”隐藏过滤到的域名
    “Show Only The Following Hosts”只显示过滤到的域名
    “Flag The Following Hosts”标记过滤到的域名
  • 文本框内输入需要过滤的域名,多个域名使用”;“分号分割。fiddler默认会检查http头中设置的host,强制显示http地址中的域名

2、方法二

  • 切换到fiddler右侧窗口的Filters选项卡,勾选顶部的“Use Filters”,根据需要找到request headers或者response headers区域
  • 勾选”set request header”,文本框分别输入”Host”和”要过滤的域名”

Fiddler 模拟弱网测试

  1. 在fiddlerScript,找300(默认是300):这个值越大越慢

    在这里插入图片描述

  2. 保存之后,还要设置使用,这三个都选上

    在这里插入图片描述


弱网测试 - chrome的F12

可以限制网速,或者自定义

在这里插入图片描述

做弱网测试的时候,可以选择 【disable cache 禁用缓存】,因为如果客户端缓存了,测不出效果

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值