当前位置: 首页 > article >正文

fiddler笔记

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的通讯,设置断点,查看所有出入fiddler的数据。

Fiddler的作用

观察请求与返回的信息,帮助我们定位前后端bug
通过抓包工具拦截请求数据,进行修改信息,绕过前端界面限制。
通过抓包工具模拟接口请求数据,接口数据没法后面测试,做假数据

fiddler页面介绍

在这里插入图片描述

菜单栏:

file:主要导入导出session,打开窗口,保存会话等
edit:复制、移除、找session
rules:用于创建规则规则过滤会话
Tools:主要是工具,可以在options种设置Fiddler的端口号、Https请求、清除cache等
View:主要用于fiddler窗口显示的设置

工具栏:

WinConfig:说明备注
replay:重新请求
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6e774b788b044558b77b8704877aba40.png):删除会话
Go:继续执行,调试bug,断点拦截请求
Stream:流模式、缓冲模式
Decode:解码
keep:All session:保存会话
Any Process:监控指定进程
Find:寻找
Save:保存
Browse:打开浏览器
clear cache:清除IE缓存
TextWizard:编码格式转换
Tearoff:窗口分离

会话列表

result:响应状态码
protocol:协议类型(HTTP/HTTPS)
host:请求地址域名
url:访问网址
body:请求的大小
caching:请求的缓存过期时间或者缓存控制
Content-Type:请求响应的类型
process:发出此请求的window进程及进程id

request(请求)

headers:发送请求的头信息。这里要关注请求类型,这个类型规定了我们发送的参数要以这个类型发送
textView:参数的文本
Syntaxview:参数的加强版
WebForms:显示请求的GET参数和POST body内容,特别说明,这里的body是application/x-www-form-urlen-coded格式
HexView:用十六进制显示请求
Auth:显示header中的Proxy-Authorization和Authorization信息
Cookies:请求发送的cookies信息
Raw:将整个请求显示为纯文本
Json:如果请求的body是json格式,就是用分级的json来显示它
XML:如果请求的body是XML格式,就是用分级的XML来显示它

response(响应)

Transformer:显示响应的编码信息
headers:用分级试图显示响应的header
textView:使用文本显示相应的body
Syntaxview:为textView的加强版,查看语法高亮的响应内容
ImageView:如果请求是图片资源,显示响应的图片
WebForms:响应在web浏览器中的预览效果
HexView:用十六进制数据显示响应
Auth:显示响应header中的Proxy-Authorization和Authorization信息
Caching:显示此请求的缓存信息
Cookies:显示此请求的cookies信息,私密P3P Header信息
Raw:将整个响应显示为纯文本
Json:如果响应的body是json格式,就是用分级的json来显示它
XML:如果响应的body是XML格式,就是用分级的XML来显示它

接口基础概述

项目:
前端:前端是肉眼所能见到的界面
后端:处理数据逻辑的
接口:提供前后端数据交互

接口标准:
网络协议://IP地址:port/url=页面路径?参数
请求方式
响应数据

fiddler抓取数据

抓取HTTPS数据

1.首次安装fiddler,菜单项Tools->Options,在Option弹窗种,点击选项卡HTTPS,勾选下图选项
在这里插入图片描述
2.点击Actions->Export Root Certificate to Desktop将证书下载到桌面
做完上述操作如果还是不能抓到,检查证书是否过期,直接点击证书查看即可,如果过期,在2步骤Action种重置证书(点击Reset all Certificates)再点击Export Root Certificate to Desktop导出
做完上述操作如果还是不能抓到,在浏览器-设置-安全-管理证书,把上面的证书导入即可
在这里插入图片描述

fiddler过滤请求

1.如图,Filters种,勾选use Filter,Hosts中可以选择过滤只显示你输入的地址域名(show only the following Hosts),下面输入框输入你要的地址域名即可
2.过滤图片、js等,在如图勾选Hide if URL contains,并在旁边输入框加上如下代码即可

REGEX:(?insx)/[^?/].(css|ico|jpg|png|gif|bmp|wav|js|jpeg)(?.)?$

在这里插入图片描述

fiddler删除数据

如图可删除全部,
单个删除,则选中要删除的session点击键盘中的delete
多个删除,按住shift+delete即可
在这里插入图片描述

fiddler如何定位bug是前后端的问题

1.打开fiddler,复现问题
2.查看Fiddler是否抓到对应请求信息,如果没有抓到可能是前端页面元素没有绑定事件,或者发生JS错误,通常是前端的BUG
3.如果Fiddler抓取到请求但返回结果错误,首先确认前端传输的数据是否正确,数据错误是前端BUG,数据正确则是后端bug
4.如果Fiddler抓取到的请求返回值的HTTP状态码是500(5xx),说明服务器错误,后端错误
5…如果Fiddler抓取到的请求返回值的HTTP状态码是404(4xx),说明请求错误,前端问题

Fiddler弱网测试

方式一:
弱网设置:菜单栏Rules->Performances->Simulate Modem Speeds:模拟调制调节器的速度
在这里插入图片描述
方式二:(自己取设置网络,更改网络速度)
Rules->Customize RUles(快捷键Ctrl+R)打开Fiddler ScriptEditor
查找m_SimulateModem标志位,手动更改上传下载时延(默认上传300毫秒,下载150毫秒)
在这里插入图片描述
修改后再设置Rules->Performances->Simulate Modem Speeds

时延计算补充

概念区分
带宽(Bandwidth):指的是在单位时间内可以传输的数据量,通常以bps(比特每秒)为单位。常见的表示有Kbps、Mbps等。
时延(Latency):指的是数据从发送端到接收端所需的时间,通常以毫秒(ms)为单位。

计算方法
要从目标带宽计算出Fiddler中的request-trickle-delay和response-trickle-delay(这些值实际上是指每KB数据需要延迟多少毫秒),我们可以使用以下步骤:

确定目标带宽:例如,假设你想模拟的下载速度为6.6 KB/s(相当于52.8 Kbps)。
转换单位:将带宽从“每秒多少字节”转换为“每字节多少秒”。对于6.6 KB/s,这意味着每传输1KB的数据需要1/6.6 秒,即大约0.1515秒或151.5毫秒。
应用到Fiddler设置:因此,在Fiddler中,如果你想限制下载速度为6.6 KB/s,你可以设置oSession[“response-trickle-delay”] = “152”(稍微向上取整以确保不超过设定的速度)。同样地,如果上传速度为3.3 KB/s,则每KB数据的上传延迟应该是1/3.3秒,约为303毫秒。

1 KB/s (千字节每秒) 表示每秒传输的数据量为1024字节(因为1KB = 1024字节,在二进制系统中)。
1 Kbps (千比特每秒) 表示每秒传输的数据量为1000比特(注意:这里是以10的三次方计数,而不是1024)。
转换关系
由于1字节等于8比特,因此可以使用以下公式进行转换:
从KB/s到Kbps:
1KB/s=1×1024bytes/s=1024×8bits/s=8192bps=8.192Kbps
从Kbps到KB/s:
1Kbps=1000bits/s=1000/8bytes/s=125bytes/s=125/1024KB/s≈0.122KB/s
2G网络:
下载速度:大约50 Kbps 到 150 Kbps
上传速度:大约50 Kbps 到 100 Kbps
3G网络(早期):
下载速度:大约384 Kbps 到 2 Mbps
上传速度:大约128 Kbps 到 512 Kbps
3G网络(HSPA):
下载速度:大约2 Mbps 到 14 Mbps
上传速度:大约512 Kbps 到 5.76 Mbps
4G网络(LTE):
下载速度:大约10 Mbps 到 1 Gbps
上传速度:大约5 Mbps 到 50 Mbps

例:2G网络的50Kbps计算
50Kbps=50x1000bits/s=50000/8bytes/s=6250bytes/s=6250/1024KB/s≈6.1KB/s
时延=1/6.1x1000=164ms

fiddler模拟mock数据

mock测试就是在测试过程中,对于某些不容易构成或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法,创建假数据。
比如:我现在有个登录下单支付的流程要测试,现在开发没写完登录的接口,我没法进行后面的测试,这个时候怎么办呢?就可以使用mock去进行测试,使用fiddler模拟登录成功的接口。
操作:
选择AutoResponder勾选enable rules
创建一个文本写入你需要的数据(json格式)
选择一个接口,添加你的数据
save保存
在这里插入图片描述

Fiddler篡改数据

1.打开fiddler
2.选中你需要操作的请求
3.添加断点,在命令窗口bpu URL,回车,添加该请求前断点成功
4.点击工作栏中Replay(重新发送请求),点击下方出现的请求(还未返回),对webforms中的值进行修改(也可以修改响应Choose Response…)
5.点击Run to Comple后,出现返回json
6.bpu 清除断点
在这里插入图片描述


http://www.kler.cn/a/532313.html

相关文章:

  • AI取代人类?
  • 人类心智逆向工程:AGI的认知科学基础
  • windows linux常用基础命令
  • 计算机网络 应用层 笔记 (电子邮件系统,SMTP,POP3,MIME,IMAP,万维网,HTTP,html)
  • C语言第六课:数组与字符串
  • Vue3 完整学习笔记 - 第四部分
  • 基于Flask的抖音用户浏览行为分析系统的设计与实现
  • RocketMQ实战—3.基于RocketMQ升级订单系统架构
  • Rust 中的模块系统:控制作用域与私有性
  • ThreadLocal使用和原理
  • 【Unity2D 2022:UI】创建滚动视图
  • CTFHub信息泄露PHPINFO
  • Qt展厅播放器/多媒体播放器/中控播放器/帧同步播放器/硬解播放器/监控播放器
  • win32汇编环境,对话框程序生成选项卡(属性页\标签)控件及运用
  • swagger使用指引
  • 网站快速收录:如何优化网站H标签使用?
  • 【操作系统】同步与异步,同步与互斥
  • 【学习笔记】计算机图形学的几何数学基础知识
  • 【Redis】主从模式,哨兵,集群
  • 每日一题——小根堆实现堆排序算法
  • 低通滤波算法的数学原理和C语言实现
  • vim-plug的自动安装与基本使用介绍
  • 【学术征稿-组织单位 武汉理工大学西安理工大学、西安财经大学】第三届通信网络与机器学习(CNML 2025)
  • Codeforces Round 1002 (Div. 2)(部分题解)
  • 利用Python高效处理大规模词汇数据
  • MongoDB 聚合