1.简介

Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的。

领导或者开发给你安排接口测试的工作任务,但是没有给你接口文档(由于开发周期没有时间出接口文档),你会怎么开展测试工作?这个时候你可以用Fiddler直接抓完包后,copy请求参数,修改下就可以了。那么这个时候我们就会用到Fiddler的Composer选项卡。

2.Composer

Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求(鼠标左键拖拽到Composer中出现绿色即可)。如下图所示:

Composer支持手动构建http、https和ftp请求。点到composer选项卡界面,我们可以看到下面有一串英文。

use this page to compose a Request。you can clone a prior request by dragging and dropping a session from the Web Sessions list。

这句话的意思是,这个页面用来构造一个请求。你可以通过拖拽Web Sessions list中的session勾选或克隆一个先前的请求。

看到这就明白了这个界面的用法。而且它指出,可以通过拖拽方式克隆请求,这意味着构建的时候不需要一条条输入,可以先拖拽进来,再修改部分。

3.界面功能解析

根据下图图标注位置对Composer的界面功能进行说明。

1.请求方式:点开可以勾选请求协议是get、post等

2.url地址栏:输入请求的url地址

3.请求头:第三块区域可以输入请求头信息

4.请求body:post请求在此区域输入body信息

5.执行:Execute按钮点击后就可以执行请求了

6.http版本:可以勾选http版本

7.请求历史:执行完成后会在右侧History区域生成历史记录

具体详细说明:

1.parsed

parsed:表示已经被解析的整个HTTP请求,包括请求行,请求头和请求体。(就是最直观的看到Request请求的展示),在英语中,有解析的意思,这里根据请求协议的组成,分为了三个部分,也正好符合了parse这个单词的语义

请求行:这里可以设置你的请求方法,请求路径,以及协议版本号

请求头:在请求行下方,是请求头

请求体(request body):这个框里设置请求体,如果是GET方法就不需要填

2.Raw(原始请求)

Raw:这个就是真实原始的HTTP请求,是没有解析过的展示。Raw选项,提供一个简单的文本框,在这里,可以输入你想要构建的http请求,在功能上与parsed有重合,一般都是使用parsed进行构建,这个选项卡很少用

3.ScratchPad

Scratchpad:可以存储已经收集好的HTTP请求,可存储多个不同的请求。这个英文的翻译是暂存器,实际上它的功能也是如此,可以保存多条http请求。只需要拖动响应的http请求到它的文本框,fiddler就会自动将session的相关的信息自动填写到其中,可以在这个框中,对比请求。也可以在excute的时候,选中指定请求信息,提交。

4.options

Optinos:Request Optinos请求选项。

  • Inspec Session:使用同一个 Session 进行连接(同一个域名或者主机的情况下),检查会话,当开启此功能并重放的时候,会自动跳入Inspectors功能模块,进行检查HTTP请求和响应。
  • Fix Content-Length Header: 当发送 Post 请求的时候,自动加上或者修正 Header 中的 Content-Length。当使用POST请求进行重放的时候,如果没有Content-Length的请求头,Fiddler会自动加上此请求头,如果有但是请求正文大小错误,则它会自动修正。默认勾选。
  • Follow Redirect:自动根踪 HTTP 状态码为 301 和 302 中返回带 Location 的请求。会自动重定向301,302的请求。
  • Automatically Authenticate:自动进行身份验证,包括认证NTLM,http 401,http 407。
  • Tear Off:将 Composer 变成一个浮动窗口。这个按钮一点击,整个composer会被剥离出fidder

UI Options:

Tear off:此功能是在原有的Fiddler功能选项里面,将Composer这个功能弹出一个浮动窗口,如果不需要直接关闭这个窗口就会恢复原样。

5.Log Requests(请求记录)

Log Requests:记录保存重放的HTTP请求。当这个勾选的时候,就会保存构造的记录。构造产生的历史记录,会展现在选项下方。

6.Request Body

Request Body:这里设置请求体的内容,一般用在POST请求。

Request Body数据类型

常见的post提交数据类型有四种:

1.第一种:application/json:这是最常见的json格式,也是非常友好的深受小伙伴喜欢的一种,如下

{"input1":"xxx","input2":"ooo","remember":false}

2.第二种:application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数

input1=xxx&input2=ooo&remember=false

3.第三种:multipart/form-data:这一种是表单格式的,数据类型如下

------WebKitFormBoundaryrGKCBY7qhFd3TrwA

Content-Disposition: form-data; name="text"

title

------WebKitFormBoundaryrGKCBY7qhFd3TrwA

Content-Disposition: form-data; name="file"; filename="chrome.png"

Content-Type: image/png

PNG ... content of chrome.png ...

------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

4.第四种:text/xml:这种直接传的xml格式

<!--?xml version="1.0"?-->

<methodcall>

<methodname>examples.getStateName</methodname>

<params>

<param>

<value><i4>41</i4></value>

</params>

</methodcall>

7.Upload file

Upload file:此功能是自己在本地构造好一个HTTP请求,然后上传到Fiddler中进行重放。

8.Excute(执行)

Execute:执行重放功能或者执行新编辑请求的按钮。点击这个按钮之后,这个请求就会被发送出去了。

4.接口测试实战

4.1POST API实战

现在免费的接口很不好找,找了半天找到python里有一个,就用这个举例吧。

接口信息:

接口信息 描述
https://httpbin.org/post 接口地址
请求方式 HTTP POST
请求参数 请求参数格式为 JSON

参数格式:

{
"form": {
"comments": "北京宏哥post接口测试",
"custemail": "19182XX@qq.com",
"custname": "北京宏哥",
"custtel": "13045032408",
"delivery": "15:45"
}
}

那么如何使用Fiddler调试一个POST请求并带有json格式的数据,具体操作步骤如下:

1.启动Fiddler,打开Composer面板, 在Composer面板中的第一个下拉框中选择POST请求方式,如下图所示:

2.输入请求接口的地址,如下图所示:

3.在Request Headers中也可以输入一些请求头信息,也可以不输入,Fiddler它会帮你自动生成。

4.在Request Body中输入请求的JSON数据,如下图所示:

5.点击Execute(执行),若在会话列表中看到结果返回200表示操作成功,如下图所示:

6.在Inspectors里面查看到请求响应的结果了,我们事先知道接口返回的是json格式数据,点击响应部分的json将数据格式化,方便阅读。如下图所示:

4.2GET API实战

接口信息:一个带参数的 get 请求,如在豆瓣网搜索:西游记,url 地址为:https://www.douban.com/search?q=西游记。具体操作如下图所示:

1.启动Fiddler,打开Composer面板, 在Composer面板中的第一个下拉框中选择GET请求方式,如下图所示:

2.输入请求接口的地址,如下图所示:

3.点击Execute(执行),若在会话列表中看到结果返回200表示操作成功,如下图所示:

5.小结

今天主要讲解和分享了如何使用Fiddler进行接口测试的两种请求方式,其他的请求类似!!!好了,今天时间也不早了,宏哥就讲解和分享到这里,感谢你耐心地阅读!!!

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(18)-Fiddler如何接口测试,妈妈再也不担心我不会接口测试了的更多相关文章

  1. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(34)-Fiddler如何抓取微信小程序的包-上篇

    1.简介 有些小伙伴或者是童鞋们说小程序抓不到包,该怎么办了???其实苹果手机如果按照宏哥前边的抓取APP包的设置方式设置好了,应该可以轻松就抓到包了.那么安卓手机小程序就比较困难,不是那么友好了.所 ...

  2. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(9)-Fiddler如何设置捕获Https会话

    1.简介 由于近几年来各大网站越来越注重安全性都改成了https协议,不像前十几年前直接是http协议直接裸奔在互联网.还有的小伙伴或者童鞋们按照上一篇宏哥的配置都配置好了,想大展身手抓一下百度的包, ...

  3. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(10)-Fiddler如何设置捕获Firefox浏览器的Https会话

    1.简介 经过上一篇对Fiddler的配置后,绝大多数的Https的会话,我们可以成功捕获抓取到,但是有些版本的Firefox浏览器仍然是捕获不到其的Https会话,需要我们更进一步的配置才能捕获到会 ...

  4. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(11)-Fiddler设置安卓手机抓包,不会可是万万不行的!

    1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Fiddler能截获 Android 和 Windows Phone 等 ...

  5. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(12)-Fiddler设置IOS手机抓包,你知多少???

    1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Fiddler 能捕获Android 和 Windows Phone 等 ...

  6. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(16)-Fiddler如何充当第三者,再识AutoResponder标签-上篇

    1.简介 Fiddler充当第三者,主要是通过AutoResponder标签在客户端和服务端之间,Fiddler抓包,然后改包,最后发送.AutoResponder这个功能可以算的上是Fiddler最 ...

  7. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(23)-Fiddler如何优雅地在正式和测试环境之间来回切换-上篇

    1.简介 在开发或者测试的过程中,由于项目环境比较多,往往需要来来回回地反复切换,那么如何优雅地切换呢?宏哥今天介绍几种方法供小伙伴或者童鞋们进行参考. 2.实际工作场景 2.1问题场景 (1)已发布 ...

  8. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(31)-Fiddler如何抓取Android系统中Flutter应用程序的包

    1.简介 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面.Flutter应用程序是用Dart编写的,这是一种由Google在7年多前创建的语言.Flut ...

  9. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(15)-Fiddler弱网测试,知否知否,应是必知必会

    1.简介 现在这个时代已经属于流量时代,用户对于App或者小程序之类的操作界面的数据和交互的要求也越来越高.对于测试人员弱网测试也是需要考验自己专业技术能力的一种技能.一个合格的测试人员,需要额外关注 ...

  10. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(14)-Fiddler断点(breakpoints)实战,篡改或伪造数据

    1.简介 上一篇主要就讲解和分享Fiddler断点的理论和操作,今天宏哥就用具体例子,将上一篇中的理论知识实践一下.而且在实际测试过程中,有时候需要修改请求或响应数据,或者直接模拟服务器响应,此时可以 ...

随机推荐

  1. OpenSSF安全计划:SBOM将驱动软件供应链安全

    在 软件成分分析(SCA)一文中,我们简单提到软件物料清单(SBOM)在安全实践中的价值. 本期文章将带你深入了解 "SBOM 无处不在"计划是什么,以及 SBOM 对未来软件供应 ...

  2. UiPath剪贴板操作的介绍和使用

    一.剪切板操作的介绍 模拟用户使用剪切板操作的一种行为: 例如使用设置剪切板(SettoClipboard),从剪切板获取(GetfromClipboard)的操作 二.剪切板相关操作在UiPath中 ...

  3. web文本划线的极简实现

    开篇 文本划线是目前逐渐流行的一个功能,不管你是小说阅读网站,还是卖教程的的网站,一般都会有记笔记或者评论的功能,传统的做法都是在文章底部加一个评论区,优点是简单,统一,缺点是不方便对文章的某一段或一 ...

  4. Web思维导图实现的技术点分析(附完整源码)

    简介 思维导图是一种常见的表达发散性思维的有效工具,市面上有非常多的工具可以用来画思维导图,有免费的也有收费的,此外也有一些可以用来帮助快速实现的JavaScript类库,如:jsMind.KityM ...

  5. 《AlignedReID:Surpassing Human-Level Performance in Person Re-Identification》理解

  6. HashSet存储自定义类型元素和LinkedHashSet集合

    HashSet集合存储自定义类型元素 HashSet存储自定义类型元素 set集合报错元素唯一: ~存储的元素(String,Integer,-Student,Person-)必须重写hashCode ...

  7. 小C的记事本_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/G 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语 ...

  8. Seata-初体验以及避坑

    Seata是什么 这里引用官方解释 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用 ...

  9. 三万字盘点Spring/Boot的那些常用扩展点

    大家好,我是三友. Spring对于每个Java后端程序员来说肯定不陌生,日常开发和面试必备的.本文就来盘点Spring/SpringBoot常见的扩展点,同时也来看看常见的开源框架是如何基于这些扩展 ...

  10. 分享一款免费OPC UA服务器

    OPC UA基于OPC基金会提供的新一代技术,提供安全,可靠和独立于厂商的,实现原始数据和预处理的信息从制造层级到生产计划或ERP层级的传输.通过OPC UA,所有需要的信息在任何时间,任何地点对每个 ...