首页 > 其他 > 详细

fiddle学习笔录

时间:2019-03-12 17:01:54      阅读:225      评论:0      收藏:0      [点我收藏+]

 

本文主要记录fiddle常用操作

如何知道HTTP请求是POST方法还是GET方法

双击HTTP请求,在右侧切换到Inspectors->Raw,如下图所示:

技术分享图片

技术分享图片

 

移动端抓包

  1. android 手机进行wifi连接,确保手机和PC在一个网络中(手机连接PC发射出去的wifi热点)。
  2. 之后修改该手机wifi网络设置,在代理区域IP设置成PC端的IP地址,端口输入如下框中的port,即可进行拦截抓包

技术分享图片

 

Fiddler抓取HTTPS

首先对Fiddler进行设置:打开工具栏->Tools->Fiddler Options->HTTPS,安装相应的证书DO_NOT_TRUST_FiddlerRoot

技术分享图片

然后就是手机上安装证书。打开手机浏览器,在浏览器地址输入代理服务器IP和端口,会看到一个Fiddler提供的页面。接着点击最下方的FiddlerRoot certificate,这时候点击确定安装就可以下载Fiddler的证书了。

技术分享图片

 

过滤抓包

  1. 打开fiddler,找到Filters选项并点击打开。 
  2. 打开后,我们选择启用。Use Filters 在这个选项上打勾。
  3. 打开后我们可以看到下面的Host模式,下拉框按如图选择。表示我们只在Fiddler上显示以下域名的数据请求。
  4. 然后我们再Hosts文本区域,输入我们需要显示的域名,用英文分号分割多个域名。
  5. 填好我们的域名后,我们点击Actions选项并选择Run Filterset Now。现在就已经设置好了。
  6. 以后抓包的时候,就之后显示自己所关心的接口了。 

技术分享图片

ps:

通过host来进行过滤。以下是几个选项的解释:

No  Zone  Filter :不通过空间进行过滤,这个是分内网跟外网的

show  only  Intranet  Hosts: 内网

show  only  internet   Hosts:外网

No  Host  Filter :不通过主机名进行过滤

Hide the following Hosts:隐藏下边输入的主机名的会话

show only  the following Hosts:显示下边输入的主机名的会话

flag  the following Hosts:标志下边输入的要过来的主机名的会话;

 

抓包断点(个人觉得在做接口测试的时候用比较合适)

  • 打断点修改Requests

 打开Fiddler,Rules->Automatic Breakpoints ->点击 Before Requests ,这样所有的请求在发送请求之前就被阻止了

技术分享图片

接着我们的打断点修改Requests,修改请求体当然也就是修改Raw的内容了,切换到Raw,就可以修改内容了:

技术分享图片

 

  • 打断点修改response

若是修改响应的数据,应该在after response 打断点,故打断点的步骤是,Rules->Automatic Breakpoints -> After Responses,这样响应结果就被阻止

技术分享图片

 

右下角的页签,切换到Transformer 
技术分享图片 
做如下的操作:

    1. 取消 Chunked Transfer-Encoding 的选择,该项默认是被选中的。
    2. HTTP Compression 选择 None

怎么解释这些操作的意思呢?

  • 官方是这样解释的:

为了提高性能,响应体是有被压缩或者采用chunked(块)的方式传输,但是如果你要修改响应体,则希望是不压缩不编码. 

接着我们的打断点修改Response,修改响应体当然也就是修改Raw的内容了,切换到Raw,就可以修改内容了:

 技术分享图片

 

  • 通过命令对特定的请求设置断点

首先我们需要命令行,命令行位于状态栏的上方,如下图所示:

技术分享图片

我们先来了解一些简单的命令:

  • help:会带你到命令行的帮助页,
  • ?sometext:高亮包含匹配文字的会话。比如 ?/sdk 就可以把url中所有包含 /sdk 的请求都找出来。
  • = 匹配请求方法或状态码 =302 高亮302跳转
  • @ 匹配host
  • go:放行所有的断点

有关断点的命令: 
断点即 breakpoint,所有跟断点相关的都是以 bp 为前缀。

  • bpu:请求时断点,比如 bpu /sdk
  • bpafter:响应时断点,比如 bpafter /sdk
  • bps:拦截状态码,比如 bps 404
  • bpm:拦截方法,比如 bpm post

用不带参数的命令可以清除断点,比如 bpafter 可以清除所有的响应断点。

 

模拟弱网测试

打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,之后,你会发现网络变得超级慢。

技术分享图片

我们还需要搞明白,Fiddler模拟网路速度的原理。

  1. Rules—>Cutomize Rules 
    技术分享图片
  2. 打开CustomRules.js 文档 
    技术分享图片

     

  3. 在文件中搜索关键字,m_SimulateModem

             if (m_SimulateModem) {
                        // Delay sends by 300ms per KB uploaded.
                        oSession["request-trickle-delay"] = "300"; 
                        // Delay receives by 150ms per KB downloaded.
                        oSession["response-trickle-delay"] = "150"; 
                }

     

  • 首先来判断m_SimulateModem是否为true,也就是是否设置了弱网模式。
  • 如果为弱网模式。则分析代码
  • oSession[“request-trickle-delay”] = “300”; 注释的也很明白,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s)
  • 如果你想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms
  • 同样的方法,也可以限制下载的速度,调整oSession[“response-trickle-delay”]="150"即可

 本地文件替换服务器文件(其实我看了之后觉得这节没什么实际意义)

需求:用一个本地的文件替换一个接口的返回数据。 

步骤:

选择接口,右键,save -> response -> response Body ,保存(例如:A.txt)响应体。

技术分享图片

选择接口,在右上角选择AutoResponder页签,勾选Enable rules、Unmatched requests passthrough 两个选项,点击Add rule 按钮,在下方填写替换的规则。 
第一行填写要替换的接口地址,可以写正则表达式进行模糊匹配,也可直接写接口的地址进行完全匹配。 
第二行填写要替换的本地文件的地址(A.txt),当然点击下拉框,也有其他的选项供我们选择, 比如404,502等等status code。 
编辑好之后,点击保存即可。这样下次再捕捉到该接口时,请求回来的数据就是本地文件中的内容了。

技术分享图片

 

AutoResponder功能使用的小技巧(和上节功能一样)

  1. 选中想要拦截的请求
  2. 然后在 Request 面板选择 AutoResponder
  3. 再选择 “Add Rule”
  4. 在最下面的下拉框选择 “Create New Response…”
  5. 然后 “Save”
  6. 会弹出一个对话框,跟 Response 面板的布局一样,在上面可以填写编辑返回的数据内容。

技术分享图片

技术分享图片

 

深入研究AutoResponder

Enable rules:控制是否激活AutoResponder选项卡,如果没有选中该选项,选项卡上的其他选项就不可选。也就是说,不勾选此项,AutoResponder是不起作用的。

Unmatched requests passthrough:如果选中该选项,不匹配的请求会正常发送到服务器,如果没有选中该选项,Fiddler会为所有和该规则完全不匹配的HTTP请求生成HTTP/404 Not Found响应。

Enable Latency:控制匹配某个规则的请求时立即执行,还是延迟Latency字段中所指定的毫秒数。如果没有选中该选项,Latency字段就不会显示,使用这个选项可以更准确地模拟现实中的服务器响应,取消该选项可以提升性能。

技术分享图片

点击右键选择set latency…… 设置响应的延迟时间。如下图所示,延迟设置1000ms = 1s。

技术分享图片

 

Fiddler中提供的编码小工具TextWizard

点击TextWizard,当鼠标放上去时,有解释:launch the textwizard to encode/decode text ,顾名思义:编码/解码文本的

技术分享图片

弹出TextWizard窗体,在1区域填写要加码或者解码的文本,在Transform选中选择要转换的方式,就会在区域2中显示结果,本图的例子是对 https://www.baidu.com 进行urlencode 加密

技术分享图片

 

修改host地址(我觉得这个可以和过滤一起用)

首先来打开编辑CustomRules.js文档,在OnBeforeRequest函数中添加如下代码,保存文件,重启Fiddler。

if (oSession.host.toLowerCase()== dispatcher.360in.com)
    {
        oSession.host=dispatchertest.camera360.com;
        oSession["ui-color"] = "orange";
    }

 

fiddle模拟post请求(其实就是接口测试)

打开Fiddler工具,在右侧点击“composer”的选项,在parsed中进行根据http发送的请求进行选择,我们是模拟post请求,故选择post,添加post的url地址,以及选择http协议的版本,填写post请求的header和body,最后点击 Execute,就可以发送post请求,在左侧可以查看到发送的请求记录。双击该请求,既可以查看详细的请求数据和返回结果。

技术分享图片

需要根据实际情况选择不同的Content-Type。 

技术分享图片

post请求的header是这样的:

User-Agent: Fiddler
Content-Type: application/x-www-form-urlencoded
Host: localhost
Content-Length: 34

那么在body里这样写:

city=“ZhengZhou”& name=”zwf”

如果要发送json格式的数据,则header这样写:

User-Agent: Fiddler
Content-Type: application/json
Host: localhost
Content-Length: 34

body中这样写:

{
    "city": "ZhengZhou",
    "name": "zwf"
}

fiddle模拟get请求(其实就是接口测试)

打开Fiddler工具,在右侧点击“composer”的选项,在parsed中选择get请求,之后填写get的url地址及相关的参数,再选择http协议的版本,最后点击execute按钮。

技术分享图片

Composer功能使用的小技巧(通过该方法可以简化接口测试)

  1. 打开Composer
  2. 从左侧会话列表拖一个会话过来,这样就有该会话的详细信息了,在此基础上进行调整修改

技术分享图片

技术分享图片

深入研究Composer

 

fiddle学习笔录

原文:https://www.cnblogs.com/cinerary/p/8674361.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!