那些年,我们用过的fiddler

在测试中,不管是做手工测试,还是接口测试,我们都需要查看后端返回的数据。有的时候,我们也需要调试,或者mock一下后端的返回,来验证前端是否达到预期。

为了捕获这些请求,抓包工具不可少。熟练掌握一些抓包工具,可以方便我们测试,调试,分析问题。

市面上的抓包工具不少,浏览器本身就自带简单抓包功能。如果需要调试,需要抓包利器。

我们常见的抓包工具有Wireshark,Fiddler, Charles等。

相比于商业工具Charles, 免费就是Fiddler的一大优势,何况它还这么好用。

fiddler是最强大的web调试工具之一,他能记录所有客户端和服务器的http/https请求以及响应,允许你监视,允许你设置断点调试,甚至篡改请求和响应。

下面简单说说测试中Fiddler常用的功能。一般我们用到的也就是:抓包,发请求,断点,替换等功能:

抓包:

我们可以抓web的包,也可以在移动设备上设置代理,抓移动设备上接口的包(设置proxy,请自行搜索)。

当我们开始抓包时候,会把浏览器或者设备上所有的包都抓下来,包括资源文件,很多包是我们不想要的,或者想过滤掉的。可以设置Filter.

Fiddler过滤指定域名

切换到fiddler右侧窗口的Filters选项卡,勾选顶部的“Use Filters”,找到Hosts区域,设置以下三个选项:

也可以如图上所标示的,用”Show only if URL contains”来过滤。

可以用一些命令来实现filter的功能

select 命令

选择所有相应类型(指content-type)为指定类型的HTTP请求,如选择图片,使用命令select image.而select css则可以选择所有相应类型为css的请求,select html则选择所有响应为HTML的请求

cls 命令:清除

=status命令

选择响应状态等于给定状态的所有HTTP请求。

例如,选择所有状态为200的HTTP请求:

=200

?text命令

选择所有 URL 匹配问号后的字符的全部 session

?englishtown

size 和

选择响应大小大于某个大小(单位是b)或者小于某个大小的所有HTTP请求

@host命令

选择包含指定 HOST 的全部 HTTP请求。例如:@csdn.net

选择所有host包含csdn.net的请求(有没有像我们社交软件中@某人的意思?)

发请求:

发请求比较简单,在Composer下把要发请求的数据准备好,直接发就可以了。

断点功能:

Bpafter, Bps, bpv, bpm, bpu

这几个命令主要用于批量设置断点

Bpafter xxx: 中断 URL 包含指定字符的全部 session 响应

Bps xxx: 中断 HTTP 响应状态为指定字符的全部 session 响应。

Bpv xxx: 中断指定请求方式的全部 session 响应

Bpm xxx: 中断指定请求方式的全部 session 响应。等同于bpv xxx

Bpu xxx:与bpafter类似。

当这些命令没有加参数时,会清空所有设置了断点的HTTP请求。

当断点时,敲个go, 也会跳过断点

清除断点是,输入bpu,回车,同时在底部也会看到断点请求被clear

响应后断点(after requests): bpafter

论坛登录接口:https://passport.cnblogs.com/user/signin

在命令行输入:bpafter https://passport.cnblogs.com/user/signin 回车

3. 登录博客园,会发现已经拦截到登录后服务器返回的数据了,此时可以修改任意返回数据

4. 取消断点,在命令行输入: bpafter 回车就可以了

如上图,当我们设置好断点后,再次请求,请求会停住。

可以通过编辑数据,发送请求,就达到了mock数据的目的了。

替换:

对请求的某个ip或域名进行重定向

打开fiddler-tools-hosts

如我有IP223.xx.xx.101:8080,重定向到223.xx.xx.99:8080上去,

只需要在里面填入即可:223.xx.xx.101:8080 223.xx.xx.99:8080

自此,所有发送到223.xx.xx.101:8080的请求都将重定向至223.xx.xx.99:8080

对请求的某个域名进行替换

替换文件,或者在线替换

点击AutoResponder,然后钩上Enable rules

在最下面的最后一行的下拉框里面,选择你想要做的操作。

Fiddler的功能很强大,这里只列出了部分常用的功能。多操作,就能熟练掌握。

作者简介:

Snake, 人称安蜀黍,专职软件测试10几年,测试界的老司机。

本文来自企鹅号 - python爱好部落媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大前端开发

使用mpvue开发小程序教程(一)

前段时间,美团开源了mpvue这个项目,使得我们又多了一种用来开发小程序的框架选项。由于mpvue框架是完全基于Vue框架的(重写了其runtime和compi...

1665
来自专栏一个会写诗的程序员的博客

webpack 极简教程(前端自动化构建)

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。

951
来自专栏前端小叙

微信公众号复制的图片可以正常显示的办法

通过浏览多方文章,找到了一个 非常好用但是也有很大的坑的办法: 在页面中加meta: <meta name="referrer" content="never"...

1.8K9
来自专栏盟主来了

miniblink每日最新下载地址

2613
来自专栏向治洪

在Mac上搭建React Native开发环境

概述 前面我们介绍过在window环境下开发React Native项目,今天说说怎么在mac上搭建一个RN的开发环境。 配置mac开发环境 基本环境安装 1....

2178
来自专栏从零开始学自动化测试

selenium+python自动化78-autoit参数化与批量上传

前言 前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片。 这样每次调用的时候,在命令行里面加...

3533
来自专栏魏艾斯博客www.vpsss.net

WordPress 后台编辑主题无“更新文件”按钮的解决办法

1212
来自专栏Rovo89

配置React开发环境教程

1222
来自专栏vue学习

webpack入门

前言:这两天在网上找了些视频和资料学习webpack,最后发现官网上的教程原来就写得很好,只是都是全英文的一开始不想去看。。。。今天认真看了下官网教程,然后总结...

1842
来自专栏马涛涛的专栏

webpack@3简单使用

这篇博客用的是webpack3的版本,作为入门理解学习 非原创,只为学习记录。博客大部分内容引用来源如下:

1816

扫码关注云+社区