Fidller的使用
目录
如何查看请求各种信息
如何通过Fidller构造请求
常用抓包工具优缺点
1.firebug
分析http请求的详细信息不够强大;模拟http请求的功能也不够;需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存
2.httpwatch
比较常用的http抓包工具,只支持IE和firefox浏览器,对于想要调试chrome浏览器的http请求,似乎稍显无力
3.wireshark 可以查看其它的请求
通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用
4.Fiddler
使用本地HTTP代理,任何能设置HTTP代理为127.0.0.1:8888的浏览器和应用程序都可以使用,强大的数据信息展
示,可修改和模拟请求,可自动重定向等
Fiddler基本原理
client fiddler server 客户端发送的请求经过fiddler再到server,server响应道fiddler再到client
1.一个http协议调试代理工具
2.记录所有客户端和服务器的http和https请求
3.解释、分析、甚至重写请求与响应数据
FIDDLER的数据详情页面--Inspector
分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。
1、Header:显示前端发送的http请求header,包含web客户端、Cookie、传输状态等 【客户端可接收的内容类型、编码、语言、请求用户信息、cookie、HTTP授权的授权证书、域名等】
2、TestView:显示post请求的body部分为文本
3、Webforms:显示请求的get参数和post body内容,这里的body为application/x-www-form-urlencoded格式
4、HexView:为十六进制数据显示请求
5、Raw:将整个请求显示为纯文本
6、XML:如果请求的body为XML格式,就用分级的XML树来显示
1、Transform:显示响应的编码信息2、Header:响应的http头文件【缓存机制、返回内容的MIME类型、语言、长度、连接状态等】
3、ImageView:如果请求的是图片资源,则显示的是响应的图片
4、WebView:响应在Web浏览器中的预览效果
5、Caching:显示此请求的缓存信息
选择单条session,右键save->selected Sessions->asTxt,打开相关的文件 可以获取请求信息,响应信息以及正文
应用场景
1.测试抓包分析
检查前端请求接口URL是否正确;
检查请求参数是否正确;
检查后端响应结果;
检查后端返回数据是否正确;
2.基本性能分析
某个http请求性能分析、前端某个操作(多个http请求)性能分析
statistics统计http服务性能参数:收发字节数;请求&响应消耗的总时间以及中间请求流程各个时间节点;还可以从图表中分辩出那些请求耗时最多,从而可以对页面的访问速度进行优化
3.修改请求&响应数据
在测试过程中经常会遇到需要修改客户端请求参数或者服务器响应参数来验证系统的质量,
例如,验证服务器是否对某些敏感信息做了后台检验;
例如,验证前端的某些类型的数据显示是否异常。
Fiddler为我们提供了非常便捷的方法来实现。接下来,将以修改请求数据为例,来说明具体操作步骤,主要分为两个步骤:设置断点、修改数据并继续执行
------断点设置--------
设置断点的方式有两种:一种是工具栏方式,一种是命令行方式
工具栏方式:Rules -> Automatic Breakpoints:
- Before Requests :拦截所有发送给服务器的请求
- After Responses:拦截所有服务器返回的session
- Disabled :取消断点
命令行方式:
- 修改Request:bpu www.midea.cn (拦截指定服务器的请求)
- 清除断点拦截:bpu
- 修改Response:bpafter www.midea.cn (拦截指定服务器响应)
- 清除断点拦截:bpafter
------修改数据并继续执行------
选择要修改的session, 在inspectors request区域-> WebForms -> 修改参数后,点击 “Run toCompletion”
4.模拟请求 --接口测试
某些时候前端开发未完成, 而我们要去测试后台功能的 时候就需要去模拟前端的请 求;
涉及到一些其他产品的前端 调用自己产品的后端时,缺 少测试环境,此时,可以通 过这个方法来提升我们的测 试效率、
用get还是post取决于函数定义的取值是怎么样的,支持那样用那种
构造--get请求例子,在url中带上参数比较简单就不详细叙述了
构造--post请求例子
步骤一
点击“composer”的选项, 选择请求模式-POST
步骤二
添加post的url地址,以及选择http协议的版本 一般http1.1
步骤三
填写post请求的header和body内容
步骤四
最后点击 Execute,就可以发送post请求,在左侧可以查看到发送的请求记录
小技巧:学习的时候可以将请求直接拖过来直接composer
Header的content-type
这里介绍一下content-type,什么是content-type呢?顾名思义,内容类型,用来指定不同格式的请求信息, 就是在header中指定body中的数据格式
Http Header里的Content-Type
在这里介绍以下两种以及相关的
实践应用:
application/x-www-form-
urlencoded:数据被编码为名称
/值对。这是标准的编码格式。
application/json : json格式
的数据
application/x-www-form-urlencoded在body里这样写:
city=“ZhengZhou”&name=”zwf”
Content-Type: application/json 在body中这样写:
{ "city": "ZhengZhou", "name":"zwf" }
5.请求重定向
在生产环境中,若发现服务器某个 css/html/js 文件有问题,直接上去测试会影响生产环境的稳定。此时,可将需要有问题的文件重定向到本地,这样就可以基于生产环境去重现bug,并定位问题。
服务端提供了接口和数据格式给前端调用,可能由于某些原因,接口还未开发完毕、或者返回数据有异常。为了不影响测试进度,可以利用重定向,通过Fiddler 将请求转向本地的数据文件上
例如,
https://www.baidu.com,返回的是一个html,我们要修改它。先将这个html文件保存至本地 请求体
接着打开 AutoResponder ,勾选前面两个复选框,开启 Fiddler 的请求自动重定向功能:
第一个复选框的作用是开启或禁用自动重定向功能。
第二个复选框框勾上时,不影响那些没满足我们处理条件的请求。
现在创建重定向规则,将目标是这个 html 的 HTTP 请求重定向到本地文件。我们可以通过“Add Rule”按钮手动添加规则,不过这个 URL 已经出现在我们的 session 列表中,可以直接拖动过来
接着修改这个规则。点击下方的下拉框,选择“Find a file”,就可以选择本地的文件作为返回的 body 内容,这里我们选择刚才保持下来的 html文件,这样我们的请求重定向就设置好了
验证下重定向是否成功,试着修改下本地这个 html文件,查看效果 也可以直接修改其他文件 先获取真实的获取文件路径 再填写本地替换路径 可以同时替换多个文件
6.移动端抓包
略
7.录制jmeter脚本
Fiddler插件安装
首先需要下载2个dll扩展文件:FiddlerExtensions.dll及FiddlerExtensions.pdb(这2个文件是为了扩展Fiddler的导出功能,支持导出JMeter使用的.jmx格式文件),拷贝至Fiddler\ImportExport目录下
Jmeter文件保存
在Fiddler中选择File -> Export Sessions ->All Sessions ,选择Jmeter文件格式即可保存为Jmeter文件