最近在研究Fidder抓包并做一点测试工作,下面介绍一下Fiddler的实现原理:

简单来说从clent,server端发出来的请求,都需要通过Fiddler进行代理走一遍。如果有任何请求需要做修改,都可以用Fiddler拦截以后进行修改转发一次

类似我们的服务小帮手一样,把所有的request都代理转发一次。

下面介绍一下Mock,我们需要测试,但是有些请求又需要修改一下参数,或者改变一下request实现的方式,比如修改状态码,产生的图片要进行替换,或者是替换执行文件等

这样我们就可以将Mock这样的形式实现了,下面看图

以上是代码实现mock的一个原理,但是跟我们操作的方式是类似的,就好像在你需要操作的地方平行出来一条线,然后实现自己想实现的东西。

接下来就是介绍实现的步骤:

1.清空浏览器中的缓存,本人使用的Chrome,所以先清空缓存。至于原因,大家都应该知道有些图片,信息被缓存了,就没法再一次通过Fiddler获取

2.尽量取消掉"Filter" Options,因为你没法保证获取数据的来源就是测试网站,也可能是来源其他网页,就像我这次要修改图片,来源就不是被测站点

3.找到你需要修改的request,然后查看图片信息

4.将图片下载至本地,然后修改内容,将修改后的图片保存等待使用

5.将需要mock的请求拖拽到AutoResponder里面,这样才能使用

6.勾选上图片显示的选项:1Enable rules, 2Unmatched requests passthrough

7.选择rule Editor 在选中Find a File

8.再次清空缓存,然后刷新页面就可以了,查看网页显示的图片就被换成我修改后的样子

这样就实现了一个简单的Mock操作,因为也是起步阶段,如果有问题请指正。

[Fiddler学习] - Mock的简单实现原理及方法的更多相关文章

  1. C#设计模式学习笔记:简单工厂模式(工厂方法模式前奏篇)

    本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7551373.html,记录一下学习过程以备后续查用. 一.引言 简单工厂模式并不属于GoF23里面的设计模式 ...

  2. 利用fiddler和mock调试本地微信网页

    利用fiddler和mock调试本地微信网页 微信公众号网页是比较特殊的页面,普通页面直接打开即可访问,但对于需要请求微信相关接口的部分需要安全域名认证.这导致了使用mock数据进行开发的页面没办法走 ...

  3. 【Fiddler学习】Fiddler教程,比较经典全面(转)

    简介 Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有 ...

  4. HTTPS-使用Fiddler抓取HTTPS数据包原理

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  5. 1. 集成学习(Ensemble Learning)原理

    1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...

  6. tensorflow学习笔记——模型持久化的原理,将CKPT转为pb文件,使用pb模型预测

    由题目就可以看出,本节内容分为三部分,第一部分就是如何将训练好的模型持久化,并学习模型持久化的原理,第二部分就是如何将CKPT转化为pb文件,第三部分就是如何使用pb模型进行预测. 一,模型持久化 为 ...

  7. Spark学习笔记0——简单了解和技术架构

    目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...

  8. 手写一个线程池,带你学习ThreadPoolExecutor线程池实现原理

    摘要:从手写线程池开始,逐步的分析这些代码在Java的线程池中是如何实现的. 本文分享自华为云社区<手写线程池,对照学习ThreadPoolExecutor线程池实现原理!>,作者:小傅哥 ...

  9. .NET程序的简单编译原理

    1.不管是什么程序,最终的执行官是CPU,而CPU只认识1和0的机器码. 2.我们现在写的一般是高级语言写的程序.CPU是不认识我们用高级语言写的源代码的,那应该怎么办才能让CPU执行我们写好的程序尼 ...

随机推荐

  1. AE 打开Shp文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. 在SQL2005中修改数据库名称

    SQL Server 2005中有个数据库HT_WisdomDataBaseCenter,现在要将其改名为HT_NBSBOneNetcs1步骤:(1) 分离数据库:打开management studi ...

  3. SPDK-nvmf与不同传输类型的公共接口

    SPDK-nvmf与不同传输类型的公共接口 不同类型的传输层到nvmf的公共命令请求接口 nvmf_fc_hwqp_handle_request() -->cmd_iu = buffer-> ...

  4. thinkphp3.2 中 Memcache 的配置和使用(memcahe的使用场景)

    Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件. TIPS: TP3.2支持的缓存方式有:数据缓存类型,支持:File|Db|Apc|Memcach ...

  5. jQuery添加/删除元素

    jQuery append() 方法 jQuery append() 方法在被选元素的结尾插入内容(仍然该元素的内部). 追加前:<p>这是一个文本段落</p> $(" ...

  6. 题解 Fractal Streets

    题目链接 参考博客 #include<cstdio> #include<math.h> #include<utility>//pair using namespac ...

  7. 未能加载文件或程序集“Autofac.Integration.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

    是因为web.config中dependentAssembly结点下的版本号和当前引用的程序集的版本号不一致!

  8. 关于testbench

    区别与verilog HDL代码,主要留意以下内容: 1,语言本身支持的特征和可综合的代码是两回事,不是所有verilog语言都可以转化为硬件的. 2,testbench作为top module,不需 ...

  9. python之路之线程,进程,协程2

    一.线程 1.创建线程 2.主线程是否等待子线程 t.setDaemon(Ture/False):默认是false,等待子线程完成,ture,表示不等待子线程结束 3.主线程等待,子线程执行 join ...

  10. 如何查看当前工程,已经安装的nuget包?

    本文链接:https://blog.csdn.net/Microsoft_Mao/article/details/101161872如果想知道,当前解决方案(solution)里都安装了什么包,这里可 ...