【测试工具】Fiddler

1.Fiddler简介

Fiddler是位于客户端和服务器端的HTTP代理,能够记录客户端和服务器之间的所有 HTTP请求,是web调试的利器。既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端。
Fiddler是一个能够监听本地 127.0.0.1:8888端口的 HTTP 代理服务器,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。
Fiddler的工作原理是什么呢?其实,每当打开fiddler的时候,它就会自动在你的电脑上把“127.0.0.1:8888”设置为代理服务器,并且fiddler会一直监听8888端口,这样的话,你的电脑上所有8888端口发出的请求或者收到的响应,都会经过这个代理服务器。

2.面板介绍

2.1工具面板

winconfig:Windows 使用了一种称为“AppContainer”的隔离技术,使得一些进程的流量无法捕获,打开WinConfig后可设置解除隔离。

2.2 会话面板

第一个是Capturing,控制捕获会话的快捷开关;

第二个是选择当前需要捕获的会话的来源程序,所有程序、浏览器、非浏览器、都不捕获选项。

2.3监控面板

  • Statistics 请求的性能数据分析,随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了。
  • Inspectors查看会话信息,上半部分是请求的内容,下半部分是响应的内容
  • AutoResponder允许拦截指定规则的请求,然后从本地返回文件,而不用将http request 发送到服务器上。在fiddler中设置一定的规则,浏览器发送指定请求时,fiddler捕获请求,根据规则将响应结果返回给浏览器。
  • 在一定意义上可以理解为“欺骗”,对百度发送了一个请求,但是实质上并没有真正的将请求发送到百度服务器上,而是fiddler伪造了一个响应结果给我。

实例:将百度请求与我电脑中的图片绑定,点击Save保存后勾选Enable rules,再访问baidu,就会被劫持,用我本地的图片资源作为响应结果。
1、选中百度请求,点击autoresponder,点击addrule按钮,导入本地图片
2、点击save按钮,勾上Enable rules。返回到浏览器,请求百度,返回的是本地图片。

这个实际应用场景是在模拟返回数据方面。
1、在fiddler工具中找到你需要修改的相关请求的链接,右击选中链接,Save—>Response—>Entire Response,保存整个html页面的返回数据;
2、使用word打开保存的文件,修改内容;
3、fiddler中找到相关请求链接,在右侧操作界面上选择AutoResponder一项,并添加到规则列表中,即Add Rule;
4、选择find a file ,选择刚刚修改过的word文件;
4、重新请求链接,返回的内容即为刚才修改的内容。(模拟响应数据)

composer自定义请求发送服务器  Fiddler做接口测试的基本步骤

Filter过滤器

摘自:fiddler学习(七)--------filter过滤_fidder 过滤 模糊匹配-CSDN博客

设置Action

Hosts过滤

响应过滤

断点

设置断点(篡改数据)

打断点的作用
1.开发人员,调试,出错后在某个位置打断点调试代码;
2.测试人员,测试,绕过前端的限制,测试后端的反应;
3.测试人员,构造数据,设置断点可篡改请求和返回的数据包。根据测试的不同场景,有时需要在测试过程中更改请求、或者更改响应内容,从而达到最终的测试目标。

全局断点

所有的请求在经过fiddler时都会被中断。打全局断点的话,是无法正常上网的。
1、全局断点对应的是工具栏模式:
Rules -> Automatic Breakpoints

  • Before Requests :拦截所有发送给服务器的请求
  • After Responses:拦截所有服务器返回的session
  • Disabled :取消断点

2、或者是在下方直接设置,如图所示:

操作步骤:
1、Before Requests  :拦截所有发送给服务器的请求

1)工具栏Rules -> Automatic Breakpoints -> Before Requests
2)选中before requests选项后,打开百度搜索fiddler,返回fiddler看到如下T的标识,说明断点成功
3)找到对应请求,点击webforms,可以看到wd是搜索关键字(fiddler),我们修改为“软件测试”。点击绿色按钮【Run to Completion】(如果选择黄色的按钮“Break on Response”,请求照样可以发出去,但是会在服务器回送消息时进行一次拦截,此时你可以修改返回的数据。)
4)回到页面后,看到服务器返回给浏览器的是软件测试相关的数据

原理:通过百度搜索fiddler,当请求到达fiddler时,fiddler进行拦截,修改请求的参数wd,点击绿色按钮,刚刚被修改的请求送达到服务器,服务器响应后将数据返回给fiddler,fiddler再返回到浏览器,浏览器进行渲染展示在页面上。

2、After Responses:拦截所有服务器返回的session

选择“Rules”--“Automatic Breakpoints”--“After Response”。此方法是在服务器接收请求,返回请求数据时被Fiddler拦截。用法同理与1
特定断点
使用场景:已经知道了某个接口的请求地址,只需要针对这一条请求打断点调试,fiddler只会中断该url发出的请求,其它请求正常被捕获,不会被fiddler拦截。
实际情况一般都是有针对性的对某请求或者某响应内容设置断点,所以说一般是使用命令行来打断点。
特定断点对应的是命令行模式:

  • 修改Request:bpu 博客园 - 开发者的网上家园 (拦截发给指定服务器的请求)
  • 清除断点拦截:bpu
  • 修改Response:bpafter http://www.cnblogs.com(拦截指定服务器返回的session)
  • 清除断点拦截:bpafter
  • 执行所有中断:go

命令行常用命令

命令行

  • 修改Request:bpu 博客园 - 开发者的网上家园 (拦截发给指定服务器的请求)   -----breakpoint url的简称
  • 清除断点拦截:bpu
  • 修改Response:bpafter http://www.cnblogs.com(拦截指定服务器返回的session)  -----breakpoint after的简称
  • 清除断点拦截:bpafter
  • 执行所有中断:go    -----去吧,皮卡丘~~
  • 根据请求方法设置断点:bpm  post    -----breakpoint method的简称
  • 根据请求状态设置断点:bps  200    -----breakpoint status的简称
    - 忘记命令:bp      -----breakpoint的简称
    清除断点拦截:bpu/bpafter/bpm/bps命令后面不接参数,就表示清除断点拦截

使用命令行设置断点的步骤
1)输入命令:“命令 + url”
2)修改请求或者响应结果的内容
3)页面查看结果
4)   取消断点 则只需要执行对应的命令即可
5)如果忘记了命令,可以在命令行中输入bp   会以对话框的形式显示所有的命令,

命令 对应请求项 介绍 示例
? All 问号后边跟一个字符串,可以匹配出包含这个字符串的请求(是对会话栏里的请求进行筛选,高亮展示满足条件的请求) ?google

命令

对应请求项

介绍

示例

?

All

问号后边跟一个字符串,可以匹配出包含这个字符串的请求(是对会话栏里的请求进行筛选,高亮展示满足条件的请求)

?google

>

Body

大于号后面跟一个数字,可以匹配出请求大小,大于这个数字请求

>1000

<

Body

小于号跟大于号相反,匹配出请求大小,小于这个数字的请求

<100

=

Result

等于号后面跟数字,可以匹配HTTP返回码

=200

@

Host

@后面跟Host,可以匹配域名

@www.baidu.com

select

Content-Type

select后面跟响应类型,可以匹配到相关的类型

select image

cls

All

清空当前所有请求

cls

dump

All

将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下

dump

start

All

开始监听请求

start

stop

All

停止监听请求

stop

断点命令

bpafter

All

bpafter后边跟一个字符串,表示中断所有包含该字符串的请求

bpafter baidu(输入bpafter解除断点)

bpu

All

跟bpafter差不多,只不过这个是收到请求了,中断响应

bpu baidu(输入bpu解除断点)

bps

Result

后面跟状态吗,表示中断所有是这个状态码的请求

bps 200(输入bps解除断点)

bpv / bpm

HTTP方法

只中断HTTP方法的命令,HTTP方法如POST、GET

bpv get(输入bpv解除断点)

g / go

All

放行所有中断下来的请求

g

4、其他常用功能
限速
背景:响应时间过长时是否有弹出网络不好的提示、页面crash以及显示错乱、session是否一致等

设置限速

(1)打开 【Rules---Customer Rules】,Ctrl+F搜索(m_SimulateModem),默认发送数据是300毫秒,接收数据是150毫秒,根据实际情况限速后进行保存(Ctrl+S)
(2)启用限速:Rules---Performance---Simulate Modem Speeds

设置IP地址显示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/715618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day02-JavaScript-Vue

文章目录 1 JavaScript1.1 介绍 1.2 引入方式1.3 基础语法1.3.1 书写语法1.3.2 变量1.3.3 数据类型和运算符 1.4 函数1.4.1 第一种定义格式1.4.2 第二种定义格式 1.5 JavaScript对象1.5.1 基本对象1.5.1.1 Array对象语法格式特点属性和方法 1.5.1.2 String对象语法格式属性和方…

17.来自Sora的夺舍妄想——享元模式详解

OpenAI 的 Sora 模型面世之后&#xff0c;可以说人类抵御AI的最后阵地也沦陷了。 在此之前&#xff0c;人们面对AI交互式对话&#xff0c;AI制图&#xff0c;AI建模之类的奇迹时&#xff0c;还可以略微放肆的说&#xff1a;“的确很神奇&#xff0c;这毕竟还是比人类世界低了一…

2024年腾讯云部署幻兽帕鲁服务器,如何选择合适的服务器配置套餐畅玩游戏?

选择合适的服务器配置套餐以畅玩《幻兽帕鲁》游戏&#xff0c;首先需要考虑的是玩家数量和对服务器性能的需求。根据腾讯云提供的配置推荐&#xff0c;对于4到8人的玩家&#xff0c;推荐配置为4核16G12M&#xff1b;而10到20人的玩家则建议选择8核32G22M配置。这是因为《幻兽帕…

小程序页面指定区域局部滚动,做上拉和触底刷新

业务需求&#xff1a;在页面某个固定区域滑动 思路&#xff1a;滑动高度 页面高度 - 自定义导航高度&#xff08;不是自己自定义的导航可以省略&#xff09;- 按钮高度 - 单词数高度 实现 &#xff1a; 1.数据展示区内使用scroll-view&#xff0c;设置y轴滚动&#xff08;…

swoole

php是单线程。php是靠多进程来处理任务&#xff0c;任何后端语言都可以采用多进程处理方式。如我们常用的php-fpm进程管理器。线程与协程,大小的关系是进程>线程>协程,而我们所说的swoole让php实现了多线程,其实在这里来说,就是好比让php创建了多个进程,每个进程执行一条…

初阶数据结构:二叉树

目录 1. 树的相关概念1.1 简述&#xff1a;树1.2 树的概念补充 2. 二叉树2.1 二叉树的概念2.2 二叉树的性质2.3 二叉树的存储结构与堆2.3.1 存储结构2.3.2 堆的概念2.3.3 堆的实现2.3.3.1 堆的向上调整法2.3.3.2 堆的向下调整算法2.3.3.3 堆的实现 1. 树的相关概念 1.1 简述&a…

【C++ AVL树】

文章目录 AVL树AVL树的概念AVL树节点的定义AVL树的插入AVL树的旋转右单旋左单旋左右双旋右左双旋 代码实现 总结 AVL树 AVL树的概念 二叉搜索树在顺序有序或接近有序的情况下&#xff0c;而插入搜索树将退化为单叉树&#xff0c;此时查找的时间复杂度为O(n)&#xff0c;效率低…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:颜色渐变)

设置组件的颜色渐变效果。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 linearGradient linearGradient(value: { angle?: number | string; direction?: GradientDirection; colors: Array; repea…

mamba-ssm安装building wheel卡着不动后error...避坑解决方法

文章目录 方法1、下载whl文件到本地后pip install安装成功后验证&#xff1a; 方法2、拉取Docker镜像 对于项目中用到MambaIR的小伙伴&#xff0c;需要pip安装 causal_conv1d和 mamba-ssm两个包及其依赖&#xff1a; torch packing transformersMambaIR-Github主页&#xff0…

【C++】vector的使用及其模拟实现

这里写目录标题 一、vector的介绍及使用1. vector的介绍2. 构造函数3. 遍历方式4. 容量操作及空间增长问题5. 增删查改6. vector二维数组 二、vector的模拟实现1. 构造函数2. 迭代器和基本接口3. reserve和resize4. push_back和pop_back5. insert和erase5. 迭代器失效问题5. 浅…

【Java】基础算法练习题

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 目录 基础算法练习题&#x1f680;1. 两数之和…

Django 管网项目 三

Django 官网文档 ​​Writing your first Django app, part 2 | Django documentation | Django 本文内容涉及创建视图 View&#xff0c;路由&#xff0c;和模版。并对内容进行渲染。 创建视图 在我们的投票应用中&#xff0c;我们需要下列几个视图&#xff1a; 问题索引页—…

ChatGPT支持下的PyTorch机器学习与深度学习技术应用

近年来&#xff0c;随着AlphaGo、无人驾驶汽车、医学影像智慧辅助诊疗、ImageNet竞赛等热点事件的发生&#xff0c;人工智能迎来了新一轮的发展浪潮。尤其是深度学习技术&#xff0c;在许多行业都取得了颠覆性的成果。另外&#xff0c;近年来&#xff0c;Pytorch深度学习框架受…

相关知识1111

一、 店铺编号和相关负责人 1、天猫兄弟、锦格 京东凡越 福林哥 如萍姐 2、京东锦格 天猫凡越 林森 雷佳华 3、天猫从简 京东从简 孔哥 4、抖音锦格 拼多多凡越 鸿哥 不知道哪个店铺编号&#xff1a;0 二、天猫京东聊天界面快捷搜索商品 1、 天猫只能根据标题搜索 2、京东是…

神经网络之万能定理python-pytorch实现,可以拟合任意曲线

神经网络之万能定理python-pytorch实现&#xff0c;可以拟合任意曲线 博主&#xff0c;这几天一直在做这个曲线拟合的实验&#xff0c;讲道理&#xff0c;网上可能也有很多这方面的资料&#xff0c;但是博主其实试了很多&#xff0c;效果只能对一般的曲线还行&#xff0c;稍微…

java之抽象类

什么是抽象类&#xff1f; 抽象就是不能具体化&#xff0c;不能实例化 作为父类&#xff0c;让子类去实现 abstract修饰类就是抽象类 abstract修饰方法就是抽象方法修饰符 abstract class 类名{修饰符 abstract 返回值类型 方法名(形参列表); }public abstract class A {//不…

CTFHUB--文件包含漏洞--RCE

文件包含漏洞 文件包含漏洞也是一种注入型漏洞&#xff0c;其本质就是输入一段用户能够控制的脚本或者代码&#xff0c;并让服务端执行。有时候由于网站功能需求&#xff0c;会让前端用户选择要包含的文件&#xff0c;而开发人员又没有对要包含的文件进行安全考虑&#xff0c;…

CSS【详解】居中对齐 (水平居中 vs 垂直居中)

水平居中 内部块级元素的宽度要小于容器(父元素) 方案一&#xff1a;文本居中对齐&#xff08;内联元素&#xff09; 限制条件&#xff1a;仅用于内联元素 display:inline 和 display: inline-block; 给容器添加样式 text-align:center<!DOCTYPE html> <html lang&q…

【简略知识】项目开发中,VO,BO,PO,DO,DTO究竟是何方妖怪?

前言 在项目开发中&#xff0c;是否需要定义VO&#xff08;视图对象&#xff09;&#xff0c;BO&#xff08;业务对象&#xff09;&#xff0c;PO&#xff08;持久化对象&#xff09;&#xff0c;DO&#xff08;领域对象&#xff09;&#xff0c;DTO&#xff08;数据传输对象&…

笨办法学 Python3 第五版(预览)(三)

原文&#xff1a;Learn Python the Hard Way, 5th Edition (Early Release) 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 练习 30&#xff1a;假如 这是你将要输入的下一个 Python 脚本&#xff0c;它向你介绍了if语句。输入这个代码&#xff0c;确保它能够完美运行…