51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 767|回复: 0
打印 上一主题 下一主题

教你学会Fiddler接口测试的核心知识点!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-6 16:35:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一、Fiddler1.工具栏中各个按钮的含义

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps1.jpg)
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps2.jpg):配置windows中特定应用的抓包(默认抓取不到)
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps3.jpg):添加备注信息
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps4.jpg):重新发起指定请求
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps5.jpg):清空指定会话内容
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps6.jpg):断点放行
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps7.jpg):模式切换
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps8.jpg):相应数据解码
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps9.jpg):显示会话数
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps10.jpg)
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps11.jpg):抓取指定进程发出的请求
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps12.jpg):关键字查找
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps13.jpg):保存当前的会话数据
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps14.jpg):截图+计时
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps15.jpg):打开浏览器
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps16.jpg):清空缓存
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps17.jpg):加密/解密
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps18.jpg):浮窗显示详细内容


2.任务面板功能详解

![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps19.jpg)
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps20.jpg):fiddler脚本
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps21.jpg):日志
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps22.jpg):过滤规则配置
Use filters:启用过滤规则
Hosts:
show only the following hosts 只展示指定的hosts
Hide the following hosts:隐藏指定的hosts
Flag the following hosts:标记指定的hosts
Clients process
Request headers
Response headers
Breakpoints
Response status code
Response content-type
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps23.jpg):时间线
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps24.jpg):会话数据统计
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps25.jpg):请求+响应详情
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps26.jpg)
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps27.jpg)
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps28.jpg):模拟服务端响应
添加响应规则,抓取到的请求如果满足已启用规则,则会被fiddler拦截,并返回规则中设置的相应内容(请求不会被发送服务器)
可以手动输入规则内容,也可以直接从会话列表中拖拽到autoresponder中
Regex:使用正则表达式进行匹配
Exact:精确匹配
Method:匹配请求方法
Header:匹配请求头
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps29.jpg):模拟客户端请求
可以手动输入规则内容,也可以直接从会话列表中拖拽到composer中
添加规则后,点击execute按钮即可发送请求
![img](file:///C:\Users\zhouchao\AppData\Local\Temp\ksohtml43056\wps30.jpg):抓取移动端流量


3.断点

在rules菜单下选择automatic breakpoints
(1)请求前断点,选择before request(快捷键F11)
请求发出后会被fiddler拦截(此时请求还未被发送到服务端),拦截后就可以修改请求内容,修改完成后点击请求信息窗口中的run to completion按钮或工具栏中的go按钮即可放行(此时修改后的请求会被发送到服务端)
(2)响应后断点,选择after response(快捷键Alt+F11)
服务端响应请求后会被fiddler拦截(此时响应内容还未被发送到客户端),拦截后就可以修改响应内容,修改完成后点击响应信息窗口中的run to completion按钮或工具栏中的go按钮即可放行(此时修改后的响应信息会被发送到服务端)
(3)关闭断点功能,disabled(快捷键Shift+F11)


4.常用命令

(1)?+关键字,从protocol、host、url三个字段中进行模糊匹配,高亮显示匹配到的请求
(2)@+关键字,从host字段中进行模糊匹配,高亮显示匹配到的请求
(3)<+数字,与body的大小作比较,高亮显示小于指定数字的请求
(4)>+数字,与body的大小作比较,高亮显示大于指定数字的请求
(5)=+状态码,与result作比较,高亮显示等于指定状态码的请求
(6)cls,清空当前会话列表中的所有请求
(7)dump,转存当前会话列表的所有请求数据
(8)Select+空格+关键字,从content-type中进行模糊匹配,高亮显示匹配到的请求
(9)start,开启代理
(10)stop,关闭代理
(11)bpu+空格+关键字,从protocol、host、url三个字段中进行模糊匹配,拦截匹配到的请求
(12)bpm/bpv+空格+method,拦截指定的方法的请求
(13)bps+空格+状态码,拦截指定响应状态码的请求
(14)bpafter+空格+关键字,从protocol、host、url三个字段中进行模糊匹配,拦截匹配到的响应
(15)g/go,放行当前被拦截的请求或响应
(16)Alt+Q:光标定位到命令行的快捷键


5.Fiddler允许移动端抓包

(1)Tools--options--https:全部勾选
(2)Tools--options--connections:
勾选allow remote computers to connect
端口号默认:8888
(3)移动端和PC端在同一个网络下
(4)移动端设置代理ip为PC的ip,端口号为:8888(与fiddler中设置的端口号保持一致)
(5)如果要抓https的包,在移动端访问:        http://<pc端ip>:8888,下载证书安装,并设置信任证书
(6)如果所有配置都已配好,还是无法正常抓包,可以查看移动设备型号是否需要额外配置


6.模拟弱网

(1)在FiddlerScript中搜索m_SimulateModem,修改上传和下载的延迟时长,即可达到模拟弱网的目的


二、HTTP协议

  • 超文本传输协议
  • 查看网页源代码:鼠标右键选择'查看网页源代码'
    常见标签:input img i a button link span
  • http的特点
    (1)        无连接(不是不连接,是不保持连接)
    (2)        媒体独立(约定的 mime-type)
    (3)        无状态(没有记忆力)
  • http和tcp /ip的区别
    (1) tcp协议传输数据,HTTP进行解释
    (2) http是无连接,tcp是有连接
    (3) http是无状态,tcp是有状态
    (4) http是应用层协议,tcp是传输层协议
  • http请求内容
    (1) request
    Request method: 请求方法 (get post)
    Request URL: 请求地址
    Request headers: 请求头

    • Content-type:指定接收数据的格式Accept:指定可接受数据类型
      Accept-language:指定客户端可接受语言类型
    • Accept-length:指定客户端可接受的数据长度
    • Accept-encoding:指定客户端可接受的编码格式
    • Cookies:存放在客户端本地的身份认证信息
    • Host:服务器主机地址
    • User-agent:客户端系统和系统版本,浏览器和浏览器版本
    • Referer:请求是从哪里发出来的,可以用来鉴别爬虫数据

    Request body: 请求体(post 要传的参数一般放在body中进行传输)
    • Application/x-www-form-urlencoded:表单数据
    • Mutipart-form:表单数据(可传文件),
    (2) response
    Response status: 响应状态码
    Response headers: 响应头
    Response body: 响应体
    (3) 常见请求方法
    get:从服务器获取信息
    ​        传参方式:一般直接在url上面跟要传的参数,参数和路径之间用?间隔,不同参数之间用&间隔
    post:修改服务器的信息
    ​        传参方式:一般在body 中跟要传的参数
    ​        form-data:表单形式,既可以传文本,也可以传文件
    ​        **x-www-form-urlencoded:表单形式,只能传文本,不能传文件        **
    ​        Raw:支持多种格式:

text:纯文本
javascript:js脚本
json:按照json数据格式的要求传参
​        html:网页源代码
​        xml:xml配置文件
binary:二进制文件
put:更新服务器的文档信息
patch:更新服务器文档的局部信息
delete:删除指定页面
head: 获取响应头,无响应体
Connect:预留给代理服务器用来建立连接管道
Options:允许查看服务端性能
Trace:回显服务器的请求,用于测试诊断
资料>>>>
https://tool.oschina.net/commons?type=5
https://baike.baidu.com/item/http/243074?fr=aladdin#2
https://germey.gitbooks.io/python3webspider/content/2.1-HTTP基本原理.html


三、Json数据
1.json(javascript object notation------js对象表示法)        是一种轻量级数据交换格式,独立于语言和平台.
2.json语法规则
(1)键值对(同一层中key不能重复)
(2)键和值之间用冒号间隔
(3)每组数据间用逗号隔开
(4)值可以是:字符串,数字,数组,对象,bool值,null


四、postman
1.鉴权
(1)鉴权方式:basic-auth(账号密码)、digest-auth(账号密码+realm)、Oauth1.0(customer key+)、Oauth2.0、hawk authentication






分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 13:57 , Processed in 0.065929 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表