Fiddler接口测试
一. 接口测试概述
-
接口
-
API(Application Program Interface) 接口属于一种操作系统或程序接口
-
GUI(Graphic User Interface) 接口属于一种图形操作系统
-
-
接口测试
- 接口测试是测试系统组件间接口的一种测试
- 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点
二. 接口及其文档的阅读和分析
- 接口文档应包含的内容
- 接口说明
- 调用的url
- 请求方法(get/post)
- 请求参数、参数类型、请求参数说明
- 返回参数说明
- 公共API接口文档
三. 接口的请求和响应
-
HTTP协议基础
- HTTP是无连接的: 无连接指的是限制每次连接只处理一个请求
- HTTP是无状态的:每次都要重新连接
-
HTTP请求及其结构
-
请求结构
请求行(request line) : 请求方法 空格 URL 空格 协议版本 回车 请求头(header) 空行 请求数据
-
响应结构
状态行 消息报头 空行 响应正文
-
-
HTTP常用请求方式
-
HTTP常见响应码
四. 常用接口测试工具
-
浏览器
-
Postman
Postman是比较完整的API测试开发环境,可以使得API测试开发变得快速、容 易使用。具有以下几个特点: • Postman提供API开发完整的工具链; • 全球最常用的REST客户端; • 从底层设计来支持API的开发和测试人员; • 直观的用户界面发送请求,保存响应,添加测试,并创建工作流;
-
Jemter
• Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件 做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同 样的测试(通过JDBC)。有以下特点: • 完全的可移植性和100% 纯java。 • 完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同 的功能同时取样。 • 精心的GUI设计允许快速操作和更精确的计时。 • 缓存和离线分析/回放测试结果
-
Fiddler
• Fiddler简介 • Fiddler是一个http协议调试代理工具; • 它能够记录并检查所有你的电脑和互联 网之间的http通讯; • 设置断点; • 查看所有的“进出”Fiddler的数据(指 cookie,html,js,css等文件); • Fiddler 要比其他的网络调试器要更加 简单; • 还提供了一个用户友好的格式
Fiddler
-
安装
- 下载地址 :
https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe
- 下载地址 :
-
工作原理
• 工作原理说明 • Fiddler 是以代理web服务器的形式工 作的,它使用代理地址:127.0.0.1, 端 口:8888. 当Fiddler会自动设置代理, 退出的时候它会自动注销代理,这样 就不会影响别的程序
-
Fiddler代理设置
-
HTTP代理 :
• 1、 启动代理 :点击窗口左下角,显示 “Capuring” 侧说明当前处于代理状态。 • 2、通过浏览器访问相关网页或执行页面操作(如,登录、搜索)。 • 3、通过Fiddler查看代理的HTTP请求进行分析
-
-
HTTPS代理设置
• 1、打开菜单栏:Tools –> Options 打开fiddler配置。 • 2、打开 HTTPS 配置项,勾选“Capture HTTPS CONNECTs”和“Decrypt HTTPS traffic”,然后点击“OK”。 会提示下载安装证书
-
Fiddler过滤会话功能
-
过滤功能开启
• 开启会话的过滤过滤功能(默认情况下,Use Filters功能为关闭的) • 需要的时候,将该过滤功能打开
-
-
过滤功能设置
-
过滤类型设置
-
过滤内容设置
• 设置Action • Run Filterset now 是否立即运行 • Load Filterset 加载 • Save Filterset 保存;
```
• Hosts过滤
• Zone:指定只显示内网(Intranet)或互联网(Internet)的内容;
```
```
• Hosts过滤
• -No Host Filter:无HOST过滤;
• -Hide the following Hosts:只显示如下HOST;
• -Flag the following Hosts:加粗显示如下HOST;
• 注意:输入多个HOST,多个之前用半角逗号或者回车分隔;
• 支持通配符:*,baidu.com
```
```
• Client Process过滤规则:
• Show only traffic from:可指定只捕获哪个Windows进程中的请求
• Show only Internet Explorer traffic:只显示IE发出的请求;
• Hide Windows RSS platform traffic:隐藏Windows RSS平台发出的请求
```
```
• Request Header过滤规则
• Show only if URL contains;
• Flag requests with headers:标记带有特定header的请求;
• Delete request headers:删除请求header;
• Set request header:设置请求的header
```
```
Breakpoints断点设置规则:
• Break request on HTTP POST:给所有POST请求设置断点;
• Break request on HTTP GET with QueryString:给所有带参数的GET请求设置断点;
• Break response on Content-Type:给特定的Content-Type设定断点
```
```
Response Status Code过滤规则:
• Hide success(202,204,206):隐藏响应成功的session(202,204,206);
• Hide Authentication demands(401):隐藏未经授权被拒绝的session(401);
• Hide redirects(300,301,302,303,307):隐藏重定向
• Hide Not Modified(304):隐藏无变更的session(304)
```
- Fiddler中过滤会话
```
Response Type and Size响应类型和大小过滤规则:
• Show all Content-Type:显示所有响应类型;
• Hide smaller than ?KB:隐藏小于指定大小的session;
• Hide larger than ?KB:隐藏大于指定大小的session;
• Time HeatMap:获得即时数据;
• Block script files:阻止脚本文件,显示为404;
• Block image files:阻止图片文件;
• Block SWF files:阻止SWF文件;
• Block CSS files:阻止CSS文件;
```
- Response Headers过滤规则
```
Response Headers过滤规则:
• Flag response that set cookies:标记会设置cookie的响应;
• Flag response with headers:标记带有特定header的响应;
• Delete response headers:删除响应header;
• Set response header:设置响应的header
```
Fiddler其他常用功能
-
Fiddler的HTTP统计视图
Fiddler的HTTP统计视图 • 通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数
-
QuickExec命令行的使用
QuickExec命令行的使用 • 常见得命令有 • help 打开官方的使用页面介绍,所有的命令都会列出来 • cls 清屏 (Ctrl+x 也可以清屏) • select 选择会话的命令 • ?.png 用来选择png后缀的图片 • bpu 截获request
-
设置断点修改Request
设置断点修改Request • Fiddler最强大的功能莫过于设置断点了,可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。 • 设置断点有两种方法: • 第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话) • 第二种: 在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com)
-
设置断点修改Response
-
设置IP地址显示
• 在测试过程中,我们经常需要通过host在不同的环境之间切换,如果知道自己的环境是否切换成功,那么通过 IP地址就很容易判断。 • 打开Fiddler, 菜单栏:Rules->Customize Rules…
• 通过快捷键 F Ctrl+F ,搜索:) static function Main() 函数。 在函数中添加一行代码, 如下: // 显示IP地址 FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP",120,"X-HostIP")
-
Fiddler中会话比较功能
会话比较功能 • 选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不 同了 (当然需要你安装WinDiff)