【测试工具】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.hqwc.cn/news/502921.html

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

相关文章

JS利用Worker多线程大文件切片上传

在做前端上传时&#xff0c;会遇到上传大文件&#xff0c;大文件就要进行分片上传&#xff0c;我们整理下思路&#xff0c;实现一个分片上传&#xff0c;最终我们要拿到每一个分片的hash值&#xff0c;index 分片索引&#xff0c;以及分片blob&#xff0c;如下&#xff1a; 一…

【Web安全靶场】sqli-labs-master 54-65 Challenges 与62关二分法和like模糊搜索

sqli-labs-master 54-65 Challenges 其他关卡和靶场见专栏… 文章目录 sqli-labs-master 54-65 Challenges第五十四关-联合注入第五十五关-联合注入第五十六关-联合注入第五十七关-联合注入第五十八关-报错注入第五十九关-报错注入第六十关-报错注入第六十一关-报错注入第六十…

【前端素材】推荐优质后台管理系统网页my-Task平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的工具&#xff0c;通常由管理员使用。后台管理系统是一种用于管理和控制网站、应用程序或系统的管理界面。它通常被设计用来让网站或应用程序的管理员或运营人员管理内容、用户、数据以及其他相关功…

深度解读篇章:剖析构建互联网大厦的基石——TCP/IP协议全貌

&#x1f440;&#x1f440;&#x1f440; 引言 今天&#xff0c;我们一同揭幕的是驱动全球互联网脉搏跳动的核心机密——TCP/IP协议体系。没有它&#xff0c;就不会有现今这般高效便捷的网络生活体验&#xff0c;无论在线教育、远程办公&#xff0c;抑或是电子商务、社交媒体…

Filebeat将csv导入es尝试

一、安装 在docker中安装部署ELKfilebeat 二、主要配置 - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /home/centos/pip_v2.csv #源路径 #…

生成式人工智能治理:入门的基本技巧

GenAI 以前所未有的速度调解并扰乱了“一切照旧”&#xff0c;同时带来了令人难以置信的力量&#xff0c;但也带来了不可否认的责任。当然&#xff0c;现代企业非常熟悉技术进步。然而&#xff0c;人工智能的到来&#xff08;和实施&#xff09;无疑引起了相当大的冲击&#xf…

element-plus+vue3表单含图片(可预览)(线上图片)

一、要实现的效果&#xff1a; 二、如果期间出现这样的效果&#xff08;表格穿透过来了&#xff09;&#xff0c;加上了这行代码就可以了&#xff1a; preview-teleported“true” 如果仅测试用&#xff0c;建议使用线上图片链接的形式&#xff0c;免得本地地址不生效&#xf…

12-Linux部署Zookeeper集群

Linux部署Zookeeper集群 简介 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域名服务、分布式同步、组服务等。…

Neo4j aura 官方网站快速入门新手教精读-从官方教程学习知识图谱

Neo4j 官方网站快速入门新手教精读 本文旨在为Neo4j新手提供一份全面的入门指南。除了基础的文本解释&#xff0c;我在里面还插入了每一步骤的详细截图或者自己画的图&#xff0c;从官方了解知识肯定比自己乱看要权威一些&#xff0c;有看不懂的不要纠结了解大概意思即可&#…

Docker与虚拟机比较

在对比Docker和虚拟机前&#xff0c;先简单了解下虚拟化&#xff0c;明确Docker和虚拟机分别对应的虚拟化级别&#xff0c;然后对Docker和虚拟机进行比较。需要注意的是&#xff0c;Docker和虚拟机并没有什么可比性&#xff0c;而是Docker使用的容器技术和虚拟机使用的虚拟化技…

idea 多模块A模块调用了B模块的Jar包,而非本地源码

1&#xff0c;问题描述 对于多模块的互相调用&#xff0c;比如模块A&#xff0c;模块B&#xff0c;模块C&#xff0c; 这在本地都是可以编辑进行开发的源码&#xff0c; 按理说是模块A可以直接点进模块B的本地源码&#xff0c; 但是不知道什么原因&#xff0c;导致模块A点进…

Java 学习和实践笔记(26):组合(component)的含义以及与继承(extends)的关系

组合的两个作用&#xff1a; 1&#xff09;通过将父类对象作为子类的属性 2&#xff09;通过第1点的作用&#xff0c;实现了代码复用。 示例代码&#xff1a; public class TestComponent {public static void main(String[] args) {Student2 s1 new Student2("jason&…