测试系列之Fiddler工具01

Posted 聂小D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试系列之Fiddler工具01相关的知识,希望对你有一定的参考价值。

前言

最近测试团队新加入了一位测试大牛,负责自动化接口开发测试,由于接口文档不全,post数据现在都是先用Fiddler获取,为了不拖团队后腿,赶紧重新学习充电一下。

1、Fiddler是什么?

它是一个http协议调试代理工具,记录客户端和服务端的所有HTTP请求,允许你监视、设置断点、甚至修改输入输出数据,软件小巧,功能强大,是测试必须掌握的测试工具之一。

2、Fiddler工作原理

Fiddler就是一个代理服务,何为代理,字面意思就是暂时替代别人的工作,负责转发请求和转发响应,类似生活中的中介,简单如下图描述。

【测试系列之Fiddler工具01】3、Fiddler下载和安装

这个过程很简单,直接百度搜索Fiddler,我现在用的是Fiddler4版本,下载直接安装即可。

4、Fiddler界面简介【测试系列之Fiddler工具01】

打开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

允许用户设置自定义值

图标

含义

【测试系列之Fiddler工具01】

请求已经发往服务器

【测试系列之Fiddler工具01】

已从服务器下载响应结果

【测试系列之Fiddler工具01】

请求从断点处暂停

【测试系列之Fiddler工具01】

响应从断点处暂停

【测试系列之Fiddler工具01】

请求使用 HTTP HEAD 方法,即响应没有内容(Body

【测试系列之Fiddler工具01】

请求使用 HTTP POST 方法

【测试系列之Fiddler工具01】

请求使用 HTTP CONNECT 方法,使用 HTTPS 协议建立连接隧道

【测试系列之Fiddler工具01】

响应是 html 格式

【测试系列之Fiddler工具01】

响应是一张图片

【测试系列之Fiddler工具01】

响应是脚本格式

【测试系列之Fiddler工具01】

响应是 CSS 格式

【测试系列之Fiddler工具01】

响应是 XML 格式

【测试系列之Fiddler工具01】

响应是 JSON 格式

【测试系列之Fiddler工具01】

响应是一个音频文件

【测试系列之Fiddler工具01】

响应是一个视频文件

【测试系列之Fiddler工具01】

响应是一个 SilverLight

【测试系列之Fiddler工具01】

响应是一个 FLASH

【测试系列之Fiddler工具01】

响应是一个字体

【测试系列之Fiddler工具01】

普通响应成功

【测试系列之Fiddler工具01】

响应是 HTTP/300301302303 307 重定向

【测试系列之Fiddler工具01】

响应是 HTTP/304(无变更):使用缓存文件

【测试系列之Fiddler工具01】

响应需要客户端证书验证

【测试系列之Fiddler工具01】

服务端错误

【测试系列之Fiddler工具01】

会话被客户端、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
【测试系列之Fiddler工具01】


【测试系列之Fiddler工具01】

d.Composer 自定义请求发送服务器

Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求,用的不多,不做详细介绍

e.Filters 请求过滤规则

启动Fiddler后操作客户端,左边的窗口不断的更新,会冒出一大片不知道哪来的请求,看着碍眼,很难找到自己想找的数据。这个时候Filters就非常有用了。

【测试系列之Fiddler工具01】

勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host

 Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:

【测试系列之Fiddler工具01】

● Host 指定显示某个域名下的会话:

【测试系列之Fiddler工具01】


如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可,域名可以通过正则表达式匹配,如:*.baidu.com,会过滤掉所有以baidu.com为后缀的请求数据。

5、Fiddler 实现抓取Iphone / android数据包

1)前提条件:确保Iphone / Android手机与电脑在同一个网络里,最简单的方法就是让手机和电脑连同一个wifi

2)配置Fiddler,  允许"远程连接"

a、打开Fiddler,  Tools-> Fiddler Options 。(配置完后记得要重启Fiddler)

【测试系列之Fiddler工具01】

b、选中"Decrpt HTTPS traffic",    Fiddler就可以截获HTTPS请求

【测试系列之Fiddler工具01】

c、选中"Allow remote computers to connect".  是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来

【测试系列之Fiddler工具01】

a、一是直接在Fiddler中查询

【测试系列之Fiddler工具01】

b、二是通过cmd,输入ipconfig查询

【测试系列之Fiddler工具01】

4)在手机端连接PC的wifi,并且设置代理IP与端口(代理IP就是上图的IP,端口是Fiddler的代理端口8888)

【测试系列之Fiddler工具01】

访问网页输入代理IP和端口,下载Fiddler的证书,点击下图FiddlerRoot certificate

【测试系列之Fiddler工具01】

【测试系列之Fiddler工具01】

5)安装完了证书,用手机访问应用,我们就可以看到截取到的数据包了,终于到了最后一步了,吼吼吼。。。

这次学习笔记就到这里了,接下来若有更近一步的学习再来更新。




以上是关于测试系列之Fiddler工具01的主要内容,如果未能解决你的问题,请参考以下文章

接口测试之Fiddler工具介绍基础篇

测试工具之fiddler

抓包工具之fiddler实战3-接口测试

接口测试 - fiddler之接口测试

常用的HTTP抓包工具Fiddler之使用技巧

接口测试之工具