基于Python的接口自动化测试(二)抓包工具Fiddler

常见的抓包工具

1. FiddlerFiddler是一款免费且功能强大的数据包抓取软件,主要用于抓取HTTP/HTTPS协议,简单易用目前主流的版本是Fiddler4,最新版本已经到了Fiddler5

2. Charles:这是一款在Mac下常用的抓包工具。

3. Wireshark:功能十分强大的抓包工具,可以支持spdytcpudp等网络协议的抓包。

对于测试来说,推荐使用Fiddler,简单实用。

 

Fiddler的配置

Fiddler目前已经更新到了Fiddler5,但是还不太稳定,所以推荐下载Fiddler4.

由于目前大部分的网站都使用的HTTPS协议,所以我们需要在Fiddler里面设置获取HTTPS

1.首先选择菜单栏里Tools一项选择Options

 基于Python的接口自动化测试(二)抓包工具Fiddler_第1张图片

 

2.打开Options后,选择HTTPS,勾选如下的三个选项

 基于Python的接口自动化测试(二)抓包工具Fiddler_第2张图片

3.根据不同情况选择抓取的目标,一般选择from all processes

from all processes :抓取所有的 https请求, 包括本机和手机

from browsers only :只抓取浏览器中的https请求

from non-browsers only :只抓取除了浏览器之外的所有https请求

from remote clients only :只抓取远程的客户端的https请求,可以代表手机

 基于Python的接口自动化测试(二)抓包工具Fiddler_第3张图片

4.安装证书

设置好HTTPS后,选择Actions,先点击Trust Root Certificate,然后点击Export

Root Certificate to Desktop,然后生成的证书会导出在桌面上。

 基于Python的接口自动化测试(二)抓包工具Fiddler_第4张图片

基于Python的接口自动化测试(二)抓包工具Fiddler_第5张图片

然后打开Google浏览器,打开设置。点击最下方的高级选项,选择管理证书

 基于Python的接口自动化测试(二)抓包工具Fiddler_第6张图片

选择导入,将桌面上的FiddlerRoot导入

 基于Python的接口自动化测试(二)抓包工具Fiddler_第7张图片

5.在Google浏览器里设置代理为127.0.0.1(本地),8888Fiddler抓包端口号)

 基于Python的接口自动化测试(二)抓包工具Fiddler_第8张图片

6.配置好Fiddler后需要重启一下Fiddler,不然设置不会生效

Fiddler的简单使用

1.主界面

当我们用Google浏览器输入www.baidu.com进入的时候,Fiddler就会捕获到请求

 基于Python的接口自动化测试(二)抓包工具Fiddler_第9张图片

根据上图,左边的竖框表示捕获到的请求列表。#号表示请求编号,没啥用。Result表示此次请求返回的code码,Protocol表示请求的类型,Host表示访问的主机(域名),URL表示要访问的资源地址。

我们选择一次请求,在右边选择Inspectors,就会出现两个横框,上面的横框表示这次请求中的Request请求的信息,下面的横框表示Response请求的信息。对于RequestResponseFiddler都提供了多种形式的展现。一般常用的查看格式有HeadersTextViewWebFormsRawJSON

2.操作请求

点击×可以有选择的删除请求

Remove all就是清空掉捕获到的所有请求,Images就时删除图片资源的请求,Non-200s就是删除code码为200以外的所有请求。

 基于Python的接口自动化测试(二)抓包工具Fiddler_第10张图片

Replay可以重新提交一次请求,达到模拟我们操作的效果

 基于Python的接口自动化测试(二)抓包工具Fiddler_第11张图片

3.设置过滤

Fiddler可以设置过滤规则使得我们可以只获取我们想要的HTTP请求。

首先启用过滤,勾选Use Filters

 基于Python的接口自动化测试(二)抓包工具Fiddler_第12张图片

一般我们只用关注Hosts里的设置

第一个选项表示网络的过滤,一般我们都选择No Zone Filter

No Zone Filter 表示不过滤

Show only Intranet Hosts 表示只显示内网请求

Show noly Internet Hosts 表示只显示外网请求

 基于Python的接口自动化测试(二)抓包工具Fiddler_第13张图片

第二个选项表示域名的过滤,根据不同需要来选择,一般我们都选择Show only the following Hosts

No Host Filter 表示不过滤

Hide the following Hosts 表示隐藏下方指定的域名请求

Show only the following Hosts 表示只显示下方指定的域名请求

Flag the following Hosts 表示加粗标记下方指定的域名请求

 基于Python的接口自动化测试(二)抓包工具Fiddler_第14张图片

这下方的输入框用来输入需要过滤的域名,可以过滤多个域名,域名与域名之间用;隔开,这里的域名是和上面第二个选项过滤规则配套使用的

 基于Python的接口自动化测试(二)抓包工具Fiddler_第15张图片

设置好之后,就能按照你所规定的规则捕获你之后操作的请求。

如果是要对之前已经捕获到的请求进行过滤,需要点击旁边的Actions,选择Run Filterset now就可以将之前捕获到的请求按照规则过滤显示。

 基于Python的接口自动化测试(二)抓包工具Fiddler_第16张图片

Fiddler还支持保存过滤规则

Save Filterset 可以将你此次设置的规则保存为ffx文件

Load Filterset 可以加载ffx文件获取过滤规则

Reload 一般是加载你最近保存的规则,提供的一个快捷方式,其实跟Load Filterset一样

4.模拟请求

有的时候前端还没有开发完成,我们可以使用Fiddler模拟请求来测试接口。

在右方编辑框选择Composer,会弹出一个编辑框。这里我们选择模拟的请求方式是GETurlhttp://www.baidu.com/,选择的协议是HTTP1.1。在下方的框就是请求头的内容,里面写上一些接口所需的参数(一般会根据接口文档来输入参数进行测试),填写完后点击右上方的Execute选择执行。最后成功捕获到这次模拟的请求。

 基于Python的接口自动化测试(二)抓包工具Fiddler_第17张图片


Fiddler是一门强大且易用的抓包工具,可以对RequestResponse进行断点,还可以进行编码和解码,但对于测试不是常用的功能。

你可能感兴趣的:(自动化测试)