文章目录
- Fiddler概述
- Fiddler页面介绍
- 常用功能介绍
- 端口号的修改
- 设置抓HTTPS数据
- Fillder过滤请求数据
- 接口相关
- Fiddler中查看请求信息
- Fiddler中查看响应信息
- Fiddler模拟弱网测试
- Fiddler模拟mock数据
- Fillder篡改数据
Fiddler概述
fiddler是一款http协议调试代理工具,所谓代理工具就是客户端发送的http请求都得先经过fiddler,然后在转交给服务器
- 查看请求和响应信息
- 帮助定位前后端bug
- 拦截请求数据,进行修改
- 模拟接口请求数据
- 模拟弱网测试
Fiddler页面介绍
打开fiddler页面,可以看到页面由菜单栏,工具栏,会话列表以及每个会话的请求和响应组成
清除会话,可以选择remove all删除全部会话,也可选择删除,可以选中一个或使用ctrl/shift配合选中多个,再点击delete
常用功能介绍
端口号的修改
设置抓HTTPS数据
fiddler默认是不能抓https数据,得先设置下
首次安装fiddler,点击菜单项Tools,再点击options,再点击https
勾中这三个选项,再点击Actions
再点击下列按钮,信任证书
弹出下列页面,点击yes和是即可
Fillder过滤请求数据
我们每次抓请求的时候,都会抓到很多请求数据,但是我只想要抓取我想要的请求数据,这时候就要进行过滤,将不想要的请求数据过滤掉
经常使用host过滤
配置完发现只抓到baidu.com的数据,别的数据都被过滤掉了
还有个过滤比较常用,就是过滤图片,css,js等静态文件
在hide if url contains 加入一行过滤的代码,该代码是正则表达式的写法
REGEX:(?insx)/[^?/].(css|ico|jpg|png|gif|bmp|wav|js|jpeg)(?.)?$
接口相关
接口:是前后端交互的一个通道
协议名://ip或域名:端口号/带层次的资源路径?查询字符串
如:http://127.0.0.1:8080/user/login?username=abc&password=123
请求方式:get,post,delete,put
抓一个接口重点关注什么?
- 接口地址url
- 接口参数
- 请求方式
- 响应内容
Fiddler中查看请求信息
选中要看的接口,再点击页面右侧的insperctors,点击raw可以看请求的文本信息
- headers:请求的header头信息
- textview:参数的文本信息
- syntaxview:加强版参数的文本信息
- webforms:显示请求的get请求的参数或post请求的body
- hexview:请求信息的十六进制
- cookie:请求携带的cookie信息
- raw:以纯文本的形式显示整个请求信息
- json:如果请求body是json格式,就用分级的json来显示
- xml:如果请求的body是xml格式,就用分级的xml树来显示
Fiddler中查看响应信息
跟看请求一样,重点关注raw信息
- transformer:显示响应的编码信息
- headers:响应的header头信息
- textview:文本显示响应body信息
- syntaxview:textview的加强版
- imageview:显示响应的图片
- hexview:十六进制的方式显示响应信息
- webview:响应在浏览器中的预览效果
- auth:显示响应header的authorization和poxy-authorization信息
- caching:显示此请求的缓存信息
- cookies:显示此请求的cookie信息
- raw:以纯文本的形式显示整个响应内容
- json:如果响应body的格式是json形式,则以分级的json形式来展示body
Fiddler模拟弱网测试
平时坐地铁,火车等时候,可能会出现因为网络原因导致的闪退,数据丢失等问题,所以模拟弱网测试是为了验证系统有没有对网络异常情况进行兼容处理
fiddler模拟弱网很简单,只需要打开下列的限速开关即可
也可以自行更改配置,设置网速
按ctrl+f搜索m_SimulateModem,可自行修改默认值
request-trickle-delay
代表每KB的数据被上传时会被延时多少毫秒
response-trickle-delay
则对应下载时每KB的数据会被延时多少毫秒
修改完保存后,只需再打开限速开关即可
Fiddler模拟mock数据
mock测试就是在测试过程中,对于某些不易构造或不易获取的对象,用一个虚拟的对象创建以便与测试,这种称为创建假数据
比如我们要测一系列功能,但是后续的功能都依赖第一个接口,但是第一个接口未开发完,此时我们可以mock测试
点击AutoResponder,勾选Enable rules
在本地新建一个文档,保存接口的返回值
发现访问该接口,可以返回自定义的值
Fillder篡改数据
一般系统前端会对数据进行一些校验,但是我想绕过前端的校验看看后端是否对数据进行了相同的校验功能,比如一个金钱输入框,前端限定不能超过100元,但是我想绕过前端这层校验,用大于100的金钱数去访问后端,此时就需要篡改数据
选择好对应的请求后,添加断点,在fiddler下方的命令窗口, bpu 接口url,回车,则添加断点成功
然后点击工具栏中的Replay重新发送请求
发现该接口发送请求成功,但是未有响应结果
修改完数据,点击Run to Completion继续执行
去除断点:在输入框输入bpu,直接回车,即可去除成功