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. 基于slate构建文档编辑器

    基于slate构建文档编辑器 slate.js是一个完全可定制的框架,用于构建富文本编辑器,在这里我们使用slate.js构建专注于文档编辑的富文本编辑器. 描述 Github | Editor DE ...

  2. 02 CSS块级元素和行内元素

    02 CSS块级元素和行内元素 划分依据:根据标签内部可以存放的元素内容不同进行划分,它与CSS样式无关. 要先了解这个 得先了解 什么是容器级别的标签和文本级? 容器级标签 什么是容器级标签? 内部 ...

  3. sql-DML-增删改

    DML:增删改表中数据 1. 添加数据: insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n); insert into 表名 values(值1,值2 ...

  4. Python实现中文字幕雨+源代码

    写在前面的一些P话: 最近浏览了很多关于用Python和Pygame实现代码雨的案例,发现很多都是没有深入讲解代码的整个实现过程,从0到1教会你制作中文文字雨. 然后在介绍的过程中,我也将深入介绍Py ...

  5. linux中CentOS配置文件编辑错误撤回

    未编辑状态下 U键 撤销 DD 快速删除

  6. vue在Docker上运行

    Dockerfile # 设置基础镜像 FROM nginx:latest # 定义作者 MAINTAINER test # 将dist文件中的内容复制到 /etc/nginx/html/ 这个目录下 ...

  7. 『现学现忘』Git后悔药 — 29、版本回退git reset --mixed命令说明

    git reset --mixed commit-id命令:回退到指定版本.(mixed:混合的,即:中等回退.) 该命令不仅修改了分支中HEAD指针的位置,还将暂存区中数据也回退到了指定版本. 但是 ...

  8. 【python】M3U8下载器脚本

    [python]M3U8下载器脚本 脚本目标: 1. 输入M3U8文件的链接,得到视频 2.使用异步操作,这样可以快很多,不加锁,因为懒得写,而且影响不大 已知条件: 1.m3u8文件其实就是一个记录 ...

  9. Spring知识点详解

    1.Spring 概述 1.1.Spring 的概念和特点 Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的开源容器框架,它是由 Rod Johnson(音乐学博士)所创建,其核心 ...

  10. 基于ABP实现DDD--聚合和聚合根实践

      在下面的例子中涉及Repository.Issue.Label.User这4个聚合根,接下来以Issue聚合为例进行分析,其中Issue聚合是由Issue[聚合根].Comment[实体].Iss ...