测试系列之Fiddler工具01
Posted 聂小D
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试系列之Fiddler工具01相关的知识,希望对你有一定的参考价值。
前言
最近测试团队新加入了一位测试大牛,负责自动化接口开发测试,由于接口文档不全,post数据现在都是先用Fiddler获取,为了不拖团队后腿,赶紧重新学习充电一下。
1、Fiddler是什么?
它是一个http协议调试代理工具,记录客户端和服务端的所有HTTP请求,允许你监视、设置断点、甚至修改输入输出数据,软件小巧,功能强大,是测试必须掌握的测试工具之一。
2、Fiddler工作原理
Fiddler就是一个代理服务,何为代理,字面意思就是暂时替代别人的工作,负责转发请求和转发响应,类似生活中的中介,简单如下图描述。
3、Fiddler下载和安装
这个过程很简单,直接百度搜索Fiddler,我现在用的是Fiddler4版本,下载直接安装即可。
4、Fiddler界面简介
打开fiddler可以看到如上图,大致分为3个部分。
1)图中1区:经典的windows应用菜单栏。我就不多说了。
2)图中2区:协议区,动态获取各种请求,显示每个请求的基本信息。字段说明如下。
名称 |
含义 |
# |
抓取HTTP Request的顺序,从1开始,以此递增 |
Result |
HTTP状态码 |
Protocol |
请求使用的协议,如HTTP/HTTPS/FTP等 |
Host |
|
URL |
请求资源的位置 |
Body |
该请求的大小 |
Caching |
请求的缓存过期时间或者缓存控制值 |
Content-Type |
请求响应的类型 |
Process |
发送此请求的进程:进程ID |
Comments |
允许用户为此回话添加备注 |
Custom |
允许用户设置自定义值 |
图标 |
含义 |
请求已经发往服务器 |
|
已从服务器下载响应结果 |
|
请求从断点处暂停 |
|
响应从断点处暂停 |
|
请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body) |
|
请求使用 HTTP 的 POST 方法 |
|
请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道 |
|
响应是 html 格式 |
|
响应是一张图片 |
|
响应是脚本格式 |
|
响应是 CSS 格式 |
|
响应是 XML 格式 |
|
响应是 JSON 格式 |
|
响应是一个音频文件 |
|
响应是一个视频文件 |
|
响应是一个 SilverLight |
|
响应是一个 FLASH |
|
响应是一个字体 |
|
普通响应成功 |
|
响应是 HTTP/300、301、302、303 或 307 重定向 |
|
响应是 HTTP/304(无变更):使用缓存文件 |
|
响应需要客户端证书验证 |
|
服务端错误 |
|
会话被客户端、Fiddler 或者服务端终止 |
3)图中3区:根据2区选择的协议而变化,显示协议的详细信息,具体字段如下。
a、Statistics HTTP请求的性能以及数据分析
Request Count请求数量
Bytes Sent发送字节数
Bytes Received服务器响应字节数(响应头-字节,响应正文)
b、Inspectors 查看数据内容
上半部分是请求信息,下半部分是响应信息,headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息
c、AutoResponder 允许拦截指定规则的请求
AutoResponder允许你拦截指定规则的请求,并返回本地资源或Fiddler资源,从而代替服务器响应。
● 字符串匹配(默认):只要包含指定字符串(不区分大小写),全部认为是匹配
字符串匹配(baidu) |
是否匹配 |
http://www.baidu.com |
匹配 |
http://pan.baidu.com |
匹配 |
http://tieba.baidu.com |
匹配 |
● 正则表达式匹配:以“regex:”开头,使用正则表达式来匹配,这个是区分大小写的
字符串匹配(regex:.+.(jpg | gif | bmp ) $) |
是否匹配 |
http://bbs.fishc.com/Path1/query=foo.bmp&bar |
不匹配 |
http://bbs.fishc.com/Path1/query=example.gif |
匹配 |
http://bbs.fishc.com/Path1/query=example.bmp |
匹配 |
http://bbs.fishc.com/Path1/query=example.Gif |
不匹配 |
● 举例,操作步骤如下图1-2-3-4-5
d.Composer 自定义请求发送服务器
Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求,用的不多,不做详细介绍
e.Filters 请求过滤规则
启动Fiddler后操作客户端,左边的窗口不断的更新,会冒出一大片不知道哪来的请求,看着碍眼,很难找到自己想找的数据。这个时候Filters就非常有用了。
勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host
● Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:
● Host 指定显示某个域名下的会话:
如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可,域名可以通过正则表达式匹配,如:*.baidu.com,会过滤掉所有以baidu.com为后缀的请求数据。
5、Fiddler 实现抓取Iphone / android数据包
1)前提条件:确保Iphone / Android手机与电脑在同一个网络里,最简单的方法就是让手机和电脑连同一个wifi
2)配置Fiddler, 允许"远程连接"
a、打开Fiddler, Tools-> Fiddler Options 。(配置完后记得要重启Fiddler)
b、选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求
c、选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
a、一是直接在Fiddler中查询
b、二是通过cmd,输入ipconfig查询
4)在手机端连接PC的wifi,并且设置代理IP与端口(代理IP就是上图的IP,端口是Fiddler的代理端口8888)
访问网页输入代理IP和端口,下载Fiddler的证书,点击下图FiddlerRoot certificate
5)安装完了证书,用手机访问应用,我们就可以看到截取到的数据包了,终于到了最后一步了,吼吼吼。。。
这次学习笔记就到这里了,接下来若有更近一步的学习再来更新。
以上是关于测试系列之Fiddler工具01的主要内容,如果未能解决你的问题,请参考以下文章