Fiddler之Replay功能详解

news2024/10/5 18:31:32

今天就先来看看Fiddler的功能。

Fiddler,最容易看到的就是快捷工具栏中的 Replay 按钮

解释下:

Reissue the selected requests.  重发选中的请求
Hold CTRL to reissue unconditionallly. 选中请求按住 CTRL 键,点击Replay时无条件重发选中的请求(什么是条件请求、无条件请求见文末)
Hold SHIFT to ressue multiple times. 选中请求按住 SHIFT 键,点击Replay时可以设置重发请求的次数

如果你想学习Fiddler抓包工具,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的Fiddler抓包工具教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流点击文章最下方卡片‘

零基础玩转Fiddler抓包在测试领域应用实战!_哔哩哔哩_bilibili【Python接口自动化测试笔记及视频源码 +微信:mashang-nn 备注(b站555)即可通过 收藏等于白嫖,点赞三连才是真情!】, 视频播放量 1349、弹幕量 2、点赞数 4、投硬币枚数 2、收藏人数 20、转发人数 0, 视频作者 自动化测试码尚科技, 作者简介 领取笔记加微信:mashang-nn 备注:B站555,相关视频:2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频,从0玩转fiddler抓包在测试领域的四大应用实战!,15天学会性能测试,通俗易懂详细教学,Jmeter性能测试实战(集群压测,全链路压测,性能调优,瓶颈分析)极速掌握,干就完事!,B站福利!Web自动化测试从0-到项目实战教程,免费学!!!,webdriver-helper自动化测试实战,用Postman轻松玩转接口自动化测试,2023B站最全RobotFramework自动化测试框架零基础入门到实战!(更新版),Fiddler抓包工具和charles抓包工具实战教学,App自动化测试Appium+UiAutomator2技巧,JMeter + Ant接口自动化测试并输出HTML报告https://www.bilibili.com/video/BV14g4y1H7vv/?spm_id_from=333.999.0.0

操作示意图:

结果视图:

其次,可以选中URL后,通过鼠标右键菜单进行请求重发

逐一说明:
① Reissue Requests:重发选中的请求(快捷键:R)
② Reissue Unconditinally:无条件重发选中的请求(快捷键:U)
③ Reissue and eidt:重发并编辑,会打开一个加了断点的请求,可以进行请求和响应数据的修改(快捷键:E)
此时会打上行断点和下行断点。即在响应前、响应后加上断点,方便对请求数据和响应数据的修改。

点击 Break on Response 后:

 

PS:如果要针对某一请求打请求断点,可以通过在Fiddler左下角命令输入框中执行 bpu 要打断点的URL 实现,如果要打响应断点,可以通过执行 bpafter 要打断点的URL 实现。如: bpu http://www.51ste.com
 Reissue and verify:重发并验证,重新发送请求,并验证其请求结果,会自动加标识(背景颜色)(快捷键:V)

⑤ Reissue Sequentially:重发序列,打开一个数量设置界面,设置需要重发多少次请求(快捷键:S)
即与 Hold SHIFT to ressue multiple times 一样
真的一样吗?待细心的朋友发现其中的差异
⑥ Reissue from Composer:重发并打开composer界面,可以编辑或发送
⑦ Revisit in IE:在IE上发起这个请求

给大家两个思考题(下来你可以动手尝试下,答案小酋将附在下篇Fiddler文章末尾)
1、支持选中多个请求重发吗?
2、Fiddler如何通过Reply,结合断点对指定请求做并发性测试?

知识扩展:什么是条件请求和无条件请求?

如果客户端发送的是一个条件验证(Conditional Validation)请求,则web服务器可能会返回HTTP/304响应,这就表明了客户端中所请求资源的缓存仍然是有效的,也就是说该资源从上次缓存到现在并没有被修改过。

条件请求 可以在确保客户端的资源是最新的同时避免因每次都请求完整资源给服务器带来的性能问题。
无条件请求 则保证每次请求返回的都是完整的资源。

如何辨别条件请求?通过下面来加深理解条件请求与无条件请求。

当客户端缓存了目标资源但不确定该缓存资源是否是最新版本的时候,就会发送一个条件请求。
在Fiddler中,你可以在 Inspector > Headers 查找相关请求头,这样就可以辨别出一个请求是否是条件请求。
在进行条件请求时,客户端会提供给服务器一个If-Modified-Since请求头,其值为服务器上次返回的Last-Modified响应头中的日期值,还会提供一个If-None-Match请求头,值为服务器上次返回的ETag响应头的值:

服务器会读取到请求头中这两个的值,判断出客户端缓存的资源是否是最新的:
1)如果是的话,服务器就会返回HTTP/304 Not Modified响应,但没有响应体。客户端收到304响应后,就会从缓存中读取对应的资源。
2)如果服务器认为客户端缓存的资源已经过期了,那么服务器就会返回HTTP/200 OK响应,响应体就是该资源当前最新的内容。客户端收到200响应后,就会用新的响应体覆盖掉旧的缓存资源。

注意:

只有在客户端缓存了对应资源且该资源的响应头中包含了Last-Modified或ETag的情况下,才可能发送条件请求。

如果不改变网站内容,让Fiddler不返回304而返回一个包含响应体的HTTP/200响应,此时就可以用无条件重发。(省略条件请求头来实现无缓存请求)

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

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

相关文章

【MySQL函数】:让你的数据库操作更高效(一)

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL字符串函数和数学函数的讲解✨ 目录 前言一、字符串函数二、数学函数三、总结 一、字符串函数 函数作用UPPER(列|字符串)将字符串每个字符转为大写LOWER(列|字符串)将字符串每个字符转为小写CONCAT(str1,str2,…

CSS的学习2

这几天复习了英语,高数,也考完四级了。 这两天开始写了课设的项目,选的是捷住宝,我打算用链表和搜索树。写着写着总是出问题,然后改Bug。还差删除信息和文件操作,还是尽量写好一些。 明天考英语&#xff…

TX-1C单片机实现多功能电子时钟

实验报告 电子时钟实验 一、实验要求:二、实验结果三、实验思路(一)模块整理(二)流程图绘制(三)C51编程 四、实验总结(一)未完成的部分(二)待优化…

layui框架实战案例(22):多附件上传实战开发实录(php后端、文件删除、数据库删除)

layUI框架实战案例系列文章 layui框架实战案例(21):layui上传的哪些事(layui.upload组件、 file文件域、php后台上传)layui框架实战案例(20):常用条件判断和信息展示技巧(图片预览、动态表格、短信已读未读、链接分享、信息脱敏、内置框架页)layui框架实…

【Spring Cloud系列】-Eureka服务端高可用详解

【Spring Cloud系列】-Eureka服务端高可用详解 文章目录 【Spring Cloud系列】-Eureka服务端高可用详解一. 序言二. 什么是高可用性三. 什么是CAP一致性(Consistency)可用性(Availability)分区容错(Partition-toleranc…

2.8 基于DPDK的UDP用户态协议栈实现

目录 一、网络协议栈1、**网络通信过程**2、**dpdk** 二、dpdk环境1、dpdk环境开启2、Windowe下配置IP和MAC地址的映射 三、实现用户态协议栈ustack1、UDP协议2、代码 四、dpdk一些基本函数接口rte_eal_init()rte_pktmbuf_pool_create()rte_socket_id()rte_eth_dev_configure()…

Java连接MySQL对数据实现增删改查

在实现好的窗口实现 添加修改删除查询数据的方法 以如下数据实验 statement自带的函数使用说明execute (SQL)执行给定的SQL语句返回一个或多个结果结果集 execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组…

Verilog | 基4 booth乘法器

上接乘法器介绍 原理 跟基2的算法一样,假设A和B是乘数和被乘数,且有: A ( a 2 n 1 a 2 n ) a 2 n − 1 a 2 n − 2 … a 1 a 0 ( a − 1 ) B b 2 n − 1 b 2 n − 2 … b 1 b 0 \begin{align}A&(a_{2n1}a_{2n})a_{2n−1}a_{2n−2}……

安卓期末考试知识总结(3)

文章目录 第五章 数据存储文件存储(非重点)内部存储获取或者打开目录操作文件 外部存储区 SharedPreferences存储写入Shared Preferences读取数据 SQLite数据库SQLite数据库的创建操作数据库数据Curosr数据库的事务 第五章 数据存储 简述Android数据存储的方式 Android平台提供…

FreeRTOS:任务通知

目录 一、任务通知简介二、发送任务通知2.1 函数xTaskNotify()2.2函数xTaskNotifyFromISR()2.3函数xTaskNotifyGive()2.4函数vTaskNotifyGiveFromISR()2.5函数xTaskNotifyAndQuery()2.6函数xTaskNotifyAndQueryFromISR() 三、获取任务通知3.1函数ulTaskNotifyTake()3.2函数xTas…

[进阶]Java:打印流、Properties、common-io框架

打印流: 作用:打印流可以实现方便、高效的打印数据到文件中去。打印流一般是:PrintStream,PrintWriter两个类。可以实现打印什么数据就是什么数据,例如打印整数97写出去就是97,打印boolean的true&#xff…

chatgpt赋能python:Python截取某段文字的方法

Python截取某段文字的方法 在处理文本数据时,截取某段文字是常见需求。Python作为一门优秀的脚本语言,提供了多种方法来完成这个任务。本篇文章将介绍Python截取某段文字的几种方便易用的方法。 方法一:使用切片 Python中的切片操作可以方…

JavaScript的一些编程题分享

将字符串abc-def-ghi转换为驼峰格式 这里我们的思路是利用字符串方法和正则表达式 const str abc-def-ghi;const camelCaseStr str.replace(/[-_][^-_]/g, match > match.charAt(1).toUpperCase());console.log(camelCaseStr); // abcDefGhi 这里使用了 replace 方法&a…

haproxy

haproxy haproxy一:常见的Web集群调度器1.软件2.硬件3.LVS ,Nginx ,Haproxy 的区别: 二:Haproxy应用分析1.HAProxy的主要特性有:2.HAProxy负载均衡策略非常多,常见的有如下8种: 三&a…

MySQL8.0数据库开窗函数

简介 数据库开窗函数是一种在SQL中使用的函数,它可以用来对结果集中的数据进行分组和排序,以便更好地分析和处理数据。开窗函数与聚合函数不同,它不会将多行数据聚合成一行,而是保留每一行数据,并对其进行分组和排序。…

Linux中/dev/random和/dev/urandom的作用

1./dev/random和/dev/urandom介绍 在Linux环境中,我们会用到/dev/random和/dev/urandom,今天为大家讲讲/dev/random和/dev/urandom的作用以及使用场景。 1.1./dev/random介绍 /dev/random是一个特殊的字符设备文件,用于生成“高质量”的随…

Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.1 定义纸牌的花色和点数

总项目目标:用面向过程思想设计一个简单的纸牌游戏程序,称为"Higher or Lower"(高还是低)。游戏中,玩家需要猜测接下来的一张牌是比当前牌高还是低。根据猜测的准确性,玩家可以得到或失去相应的积…

Unity UGUI1——基础组件概述

一、UGUI 介绍 ​ UGUI 是 Unity 引擎内自带的 UI 系统,官方称之为:Unity UI ​ 是目前 Unity 商业游戏开发中使用最广泛的 UI 系统开发解决方案 ​ 它是基于 Unity 游戏对象的 UI 系统,只能用来做游戏 UI 功能 ​ 不能用于开发 Unity 编…

【MarkDown】CSDN Markdown之Git图gitGraph详解

Git图 Git图是对不同分支上的Git提交和Git操作(命令)的图形化表示。 这种类型的图特别适合开发人员和DevOps团队分享他们的Git分支策略。例如,它可以更容易地可视化git流的工作方式。 Mermaid可以呈现Git图,但是只有v10.2.3 才支持。 代码…

kubernets 笔记

kubernets 笔记 kubernets 安装 1. 环境准备 硬件要求 内存:2GBCPU:2 核硬盘:30GB 本次环境说明 操作系统:CentOS 7.9内核版本:3.10.0-1160.76.1.el7.x86_64k8s-m:192.168.222.3k8s-s01:192.…