在测试中,不管是做手工测试,还是接口测试,我们都需要查看后端返回的数据。有的时候,我们也需要调试,或者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几年,测试界的老司机。
领取专属 10元无门槛券
私享最新 技术干货