测试必会+面试必问--抓包工具Fiddler(上)

测试必会+面试必问=本文建议看完

最近学习接口自动化测试相关内容,需要用到一些抓包工具。

市场上抓包工具有很多,例如:wireshark、httpwatch、Fiddler、charles 等等。

做接口测试只要掌握其中一两款即可。

个人推荐 Fiddler、charles。推荐理由:

1.应用广泛

2.独立运行

3.支持移动设备

4.免费

接下来我会通过两篇文章介绍 Fiddler,由浅入深。

本篇--《Fiddler 环境配置与原理剖析》

下篇--《Fiddler 功能详解》

本文目录:

1.Fiddler 简介

Fiddler 是一款免费、灵活、操作简单、功能强大的 HTTP 代理工具,是目前最常用的抓包工具之一。具备的功能:抓取所有的 HTTP/HTTPS 包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等。

2.Fiddler 工作原理

Fiddler 抓包实现原理:客户端服务器进行消息交互时,HTTP 客户端设置 Fiddler 作为代理,把 http 请求发送给 Fiddler,Fiddler 再转发给服务器,同样,服务器返回消息也是先返回给 Fiddler,再由 Fiddler 转发给客户端。就像两个人聊天会通过一个中间人传话,这个中间人就是 Fiddler,他自然什么都知道。

3.下载与安装

3.1、Fiddler 安装

下载链接:fiddler 下载链接

或者文末关注公众号,后台发送‘666’,网盘--安装包文件里有现成的安装包

下载完成直接运行安装即可。

3.2、HTTPS 证书安装

默认状态下,Fiddler 只能监听 HTTP 请求。比如我们打开百度官网https://www.baidu.com/,然后去Fiddler查看。

下图的 4 种迹象都可以说明 Fiddler 没有安装 HTTPS 证书,导致无法抓取 HTTPS 请求包。

想要抓取 HTTPS 请求包,需要先进行设置。路径:Tool--Options--HTTPS,勾选如下选项。

点击第 4 步 Actions 时选择‘Export Root Certificate to Desktop’,弹出提示

点击‘确定’。

然后去浏览器,在‘证书管理器’里,将 Fiddler 的证书导入到受信任的证书。

以 chrome 为例,路径为:右上角三个点--设置--安全和隐私设置--安全--高级--管理证书

这时候再去 Fiddler 会话列表,可以看到。HTTPS 数据包就可以成功抓取了。

3.3、设置过滤项

3.3.1、根据目标主机地址过滤

1.点击右上角的 filters

2.勾选 Use Filters

3.选择 show only on following Hosts,表示仅抓取下面的地址的消息。

4.输入想要抓取的 HTTP 消息的目标地址,用分号隔开,* 可以作为通配符。

5.点击‘changes not yet saved’,保存生效。

3.3.2、通过 URL 中关键字符过滤

表示只抓取 url 中包含该关键字的消息,比如做 api 接口测试,则输入关键字‘api’。

设置好后就可以查看我们抓到的消息包了

4.配置手机抓包

如果我们想要抓取手机上的 HTTP 请求,还需要在手机上进行配置。要注意的是,苹果和安卓的配置方法有很多差异。安卓手机的不同品牌、同品牌的不同型号,配置方法大同小异。下面以安卓手机为例。

4.1、手机抓包设置

1、确保手机和运行 fiddler 的电脑使用的是同一个子网,比如使用同一个 wifi 信号连接

2、设置 Fiddler,允许远程机器连接自己,点击菜单 option,点击 connections 标签,勾选 Allow remote computer to connect, 如下所示

3、打开手机 wifi,选择当前的 wifi,点击修改网络,点击“代理设置”,主机名和端口输入 Fiddler 所在机器的 ip 地址(通过 ipconfig 查看)和代理端口 8888。

此时,我们在手机上打开百度,可以看到 Fiddler 成功监控了,但是无法对 HTTPS 会话解密,要想用 Fiddler 抓取手机上的 HTTPS 数据包,还需要在手机下载并安装 Fiddler 根证书。

4.2、手机下载 Fiddler 根证书

根证书地址:http://代理服务器地址:8888/FiddlerRoot.cer

下载完成后,进行安装。

以我的手机为例,安装时系统会提示‘出于安全考虑,请去“设置”里安装’。

路径为:设置--安全与隐私--更多安全设置--从手机存储安装--CA 证书,不同手机路径可能不同,自己找下。

此时,Fiddler 就已经可以抓取手机端发送到服务端的所有 HTTP/HTTPS 协议了

这样,手机抓包的就算配置成功了,需要注意的是‘防火墙需要允许 Fiddler 进程可以远程链接’。

4.3、补充:解决Android7以上抓包失败问题

此外,在过程中发现,环境都配置好之后,还是会出现APP抓HTTPS抓不到的情况(Android7以上系统),有可能是App内置证书的问题 -- SSL Pinning 机制(也可称为证书绑定)

具体原因及解决办法可以看下这篇文章(写的很详细,不复述了):

http://testingpai.com/article/1595507273724

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值