接口测试工具--Fiddler 的使用
1. Fiddler 简介
Fiddler是介于浏览器客户端和服务器之间的端口监听服务。如下图所示:他类似于中间的代理服务器,当使用fiddler时,请求直接发送到fiddler代理网桥,fiddler将请求转发给服务器,同样,服务器的响应也发送给fiddler,fiddler将请求转发给浏览器。对于客户端浏览器,Fiddler 客户端就是是web服务器,对于web服务器,Fiddler模拟web浏览器。在这个过程中,Fiddler截取和记录所有传入的和传出的消息。
Fiddler sits between HTTP client nd server nd listened on port. s the finger below, it cts s €œmn-in-the-middle€ proxy, when using fiddler, the requests is being sent directly to Fiddler proxy bridge, Fiddler will forwrd the request to rel server, Likewise, the response from server is lso sent to the fiddler, fiddler will forwrd it to the browser. To the client browser, Fiddler clims to be the web server, nd to the web server, Fiddler mimics the web browser. In this process, Fiddler intercepts nd records ll the incoming nd outgoing messges.

功能:
- 针对特定的请求过滤
- 分析请求和响应的数据、
- 设置断点、调试、修改请求的数据,
- 修改服务器返回的数据
下载地址:https://www.telerik.com/fiddler
注意:在安装过程中可能会要求关闭全部浏览器
2. 首次使用
界面如下:
2.1 检查会话
fiddler界面中显示了捕获到的所有HTTP和HTTPS会话,这些消息包括如下关键信息:
# – An ID# of the request generated by Fiddler for your convenience
Result – The Result code from the HTTP Response
Protocol – The Protocol (HTTP/HTTPS/FTP) used by this session
Host – The hostname of the server to which the request was sent
URL – The path and file requested from the server
Body – The number of bytes in the Response body
Caching – Values from the Response’s Expires or Cache-Control headers
Process – The local Windows Process from which the traffic originated
Content-Type – The Content-Type header from the Response
Custom – A text field you can set via scripting
Comments – A text field you can set from scripting or the session’s context menu
每种类型的项目在左边都有一个自己的图标,下面是所有图标的列表。

2.2 Check Fiddler Inspectors
Request Inspectors
[RW] Headers Shows request headers and status.
[RW] TextView Shows the request body in a text box.
[RW] HexView ”Shows the request body in a hexadecimal view.
[RO] XML Shows the request body as an XML DOM in a tree view.
Response Inspectors
[RW] Transformer Removes GZip, DEFLATE, and CHUNKED encodings for easier debugging.
[RW] Headers Shows response headers and status.
[RW] TextView Shows the response body in a text box.
[RW] HexView Shows the response body in a hexadecimal view.
[RO] ImageView Shows the response body as an Image. Supports all .NET image formats.
[RO] XML Shows the response body as an XML DOM in a tree view.
[RO] Privacy Explains the P3P statement in the response headers, if present.
2.3 Check sttistics of the request
- Sttistics--显示所选HTTP会话的性能统计数据
- Inspectors--
- utoResponder---自动回复
- FiddlerScript-------Fiddler 脚本
- Log-----log日志
- Filters--过滤器
- Timeline--时间表
- Composer 设计改动报文
3.其他
3.1. 抓取https请求
点击 Fiddler->Tools -> Options,在 HTTPS 面板选中。做如下所示操作,并安装(需重启Fiddler生效)。

3.2. 抓取手机请求
如果想要捕获手机上的通信数据,就需要手机连接上Fiddler代理,而Fiddler默认是不允许其他设备进行连接的
a. 首先安装fiddler的电脑,跟手机需在同一局域网内
b. 点击 Fiddler->Tools -> Options,在 Connections 面板选中 Allow remote computers to connect 允许其他设备连接(需重启Fiddler生效)。

c. 手机上配置代理,并安装Fiddler的安装证书
3.3. 需代码处理部分
Rules -> Customize Rules 打开Fiddler ScriptEditor,这里可以通过修改脚本中某些方法( OnBeforeRequest(oSession: Session)),来改变请求报文,或者返回报文中信息
注意:代码调整之后,一定要重启Fiddler重新加载CustomRules.js。
如何解决Fiddler 修改返回内容 OnBeforeResponse 无效的问题?
问题关键点是:必须在OnBeforeResponse前,设置oSession.bBufferResponse = true;
顾名思义,开启了缓存模式来处理返回内容,才能最终反馈到浏览器上,否则,保持原有的流式模式的话,就会出现修改和返回同时进行,浏览器得到的还是原版的数据。
建议在OnPeektResponseHeders中根据需要,设置bBufferResponse 。
添加的代码如下: sttic function OnPeektResponseHeders(oSession: Session) {
if (oSession.uriContins("flow/intercept")){
oSession.bBufferResponse = true; //需要在返回头这里设置buffer处理,否则,后续无法在onBeforeResponse中修改body(修改的动作不会阻塞原来的返回)
}
}
3.4 Fiddler中的Tool
编码小工具TextWizrd,如何使用呢?
1、点击TextWizrd,当鼠标放上去时,有解释:lunch the textwizrd to encode/decode text ,顾名思义:编码/解码文本的
4.参考资料
Fiddler tutoril – How to use Fiddler
接口测试工具--Fiddler 的使用的更多相关文章
- 玩转接口测试工具fiddler 教程系列1
我们在做web测试的时候,很多时候需要查看接口发送的数据返回的数据是否正常,这样可以排除是客户端的问题还是服务器的问题,举个例子来说,如果我们发现页面上面数据少了, 通过fiddler查看数据返回就少 ...
- 接口测试工具-fiddler的运用
本篇主要介绍一下fiddler的基本运用,包括查看接口请求方式,状态响应码,如何进行接口测试等 一.Fiddler的优点 独立的可以直接抓http请求 小巧.功能完善 快捷.启动就行 代理方便 二.什 ...
- 接口测试工具-fiddler
1.fiddler拦截修改数据 命令介绍: bpu在请求开始时中断,bpafter在响应到达时中断,bps在特定http状态码时中断,bpv/bpm在特定请求method时中断. 提示:命令输入区域输 ...
- python接口自动化(四)--接口测试工具介绍(详解)
简介 “工欲善其事必先利其器”,通过前边几篇文章的介绍,大家大致对接口有了进一步的认识.那么接下来让我们看看接口测试的工具有哪些. 目前,市场上有很多支持接口测试的工具.利用工具进行接口测试,能够提供 ...
- 接口测试Jmeter+Fiddler组合
接口测试Jmeter+Fiddler组合 在使用完Jmeter在做接口测试之后,个人感觉Jmeter比loadrunner好用,原因是界面操作更加直观,不必像loadrunner在写接口请求函数的时候 ...
- Python接口测试实战1(下)- 接口测试工具的使用
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- postman接口测试工具的常规使用
目录 postman接口测试工具简介与安装 postman发送get请求 JSON数据详解 postman发送post请求 postman中post请求传参说明 postman设置请求的header ...
- 接口测试基础--Fiddler、Postman、Python实现对接口的测试
写在前面:本文主要的章节规划: 1.什么是接口测试 另外,有的时候会直接调用别的公司的接口,比如银行的.淘宝的.支付宝的,此时也需要做接口测试以及验证数据: 做接口测试的好处: 其中, ...
- C#进阶系列——WebApi 接口测试工具:WebApiTestClient
前言:这两天在整WebApi的服务,由于调用方是Android客户端,Android开发人员也不懂C#语法,API里面的接口也不能直接给他们看,没办法,只有整个详细一点的文档呗.由于接口个数有点多,每 ...
随机推荐
- JS常用字符串处理方法应用总结
这篇文章主要总结了JS常用字符串的处理方法,需要的朋友可以参考下 1.indexOf()方法,从前往后查找字符串位置,大小写敏感,从0开始计数.同理,lastIndexOf() 方法从后往前,两个 ...
- metasploitable2更改root密码
metasploitable2这个系统众所周知,一个用户名和密码是msfadmin.但是这个账号权限不全,我们想要改root密码来登陆为所欲为.也没试过破解,咱们索性就改了吧. 就简单几行代码.. ...
- terminology(术语)
1.declaration:告诉编译器某个标识符的name和type,同时略去具体细节. extern int x; //对象(object)声明式 std::size_t numDigit ...
- jquery 打星评分插件
<link rel="stylesheet" href="/static/vendor/raty/jquery.raty.css"> <scr ...
- 剑指Offer(书):用两个栈实现队列
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 分析:入栈时只入栈1,出栈为栈2:若栈2不为空,直接出栈:否则,将栈1中的值依次入栈2,之后栈2出栈 Sta ...
- Centos 7安装Mysql5.7
1.下载(国内镜像,比搜狐的快一点):http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc ...
- Java学习之并发多线程理解
1.线程简介: 世间万物会同时完成很多工作,如人体同时进行呼吸.血液循环.思考问题等活动,用户既可以使用计算机听歌也可以使用它打印文件,而这些活动完全可以同时进行,这种思想在Java中称为并发,而将并 ...
- 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]-最小内积(第八届北京师范大学程序设计竞赛决赛)
H. 最小内积 Time Limit: 1000ms Memory ...
- iOS第三方语音-微信语音
网址链接:http://pr.weixin.qq.com/ 里面包含了微信语音和图像,集成很简单,下载方demo后会有个文档,按照流程来(因为它只提供了真机的.a文件,所以只能用真机哦,不然会报错) ...
- git学习(一)----基础知识
git是世界上最好用最先进的版本管理系统,那么什么是版本管理系统呢,百度上是这样说的: 举个例子,当你写毕业论文的时候,灵感爆发了修改或者删除了一些内容,但是你还想保留之前的版本,就需要另存为不同的w ...