自学软件测试day9—— web接口测试、Fiddler抓包
本文系统介绍了HTTP协议的工作原理及应用要点。主要内容包括:HTTP在网络分层模型中的位置及其请求-响应机制;HTTP报文结构和常用方法(GET/POST等);HTTPS的安全特性及与HTTP的区别;Fiddler抓包工具的使用方法,包括请求/响应报文分析、修改及自动应答功能。文章详细解析了HTTP协议从基础原理到实际应用的关键知识点,为理解Web通信机制提供了全面指导。
目录
一、HTTP协议工作原理
1.1 网络分层模型

应用层:采用何种协议
表示层:数据形式和标准的格式转换——图片、文字、声音
会话层:何时建立起连接、连接保持多久
传输层:管理2个节点之间的数据传输。负责可靠传输
网络层:地址管理和路由选择,经过哪个路由更近更快的传递到目标地址。
数据链路层:负责数据帧和比特流之间的转换
物理层:比特流和电子信号之间的切换,0和1代表电压的高低,灯光的亮灭
1.2 什么是HTTP协议
中文名:超文本传输协议(Hyper Text Transfer Protecal),http可以从web服务器上将信息快速可靠的传送到web浏览器上
作用是:规定服务器和浏览信息传递规范
HTTP协议是一个简单的请求→响应协议
一个请求(request)只能有一个响应(response)
响应(response)是被动的,不能主动发起
它是建立在TCP协议之上(即由TCP协议来负责数据传输)
HTTP默认端口为80,HTTPS默认端口是443
HTTP协议版本有HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2、HTTP/3,目前以协议HTTP/1.1为主
HTTP 0.9(GET):原型版本,功能简陋,只有一个命令GET,服务器只能回应HTML格式字符串
HTTP 1.0(新增POST、HEAD):短链接,每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再创建一个连接
HTTP 1.1(新增Host头——支持虚拟主机):长链接,引入了持久连接,即TCP连接默认不关闭,一次TCP连接可以多次请求
1.3 HTTP协议的特点

二、HTTPS介绍
2.1 HTTPS协议详解
HTTPS 是一种应用层协议,是一种透过计算机网络进行安全通信的传输协议。
HTTPS 经由 HTTP 进行通信,但是在 HTTP 的基础上引入了一个加密层,使用 SSL/TLS 来加密数据包
HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
HTTPS 默认工作在 TCP 协议443端口
| HTTP | HTTPS |
| 无证书 | 有证书 |
| 明文传输 | 密文传输 |
| 80端口 | 443端口 |
| 无身份认证 | 有身份认证 |
| 无完整性校验 | 有完整性校验 |
三、HTTP请求报文、响应报文
3.1 HTTP请求报文
3.2 HTTP请求方法:GET / POST
- GET 向特定的资源发出请求。
- POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立换已有资源的修改
- PUT 向指定资源位置上传其最新内容,如果不存在新增,如果已存在修改成最新,上传文件
- DELETE 请求服务器删除 Request-URL所标识的资源
- TRACE 回显示服务器收到的请求,主要用于测试或诊断
- HEAD 向服务器获取响应信息头中的信息
- OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法
- CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
主要的请求方法有:GET、POST、PUT、DELETE
GET方法
提交数据不安全,数据置于请求行,浏览器地址栏可见;
URL长度每个浏览器限制数量不同,最长在2000字符以内
GET方法速度快
默认的请求方法,不需要提交大量数据、无敏感、保密数据时使用
POST方法
提交数据安全,数据置于消息主体内,浏览器地址栏不可见
提交的数据大小没有限制
POST 方法速度慢
需要提交大量数据、有敏感、保密数据时使用
3.3 HTTP响应报文

3.3.1 HTTP响应状态码
| 200 | 客户端请求成功 |
| 301 | 永久性重定向 |
| 302 | 临时性重定向 |
| 403 | 服务器收到请求,但拒绝提供服务 |
| 404 | 请求的资源不存在 |
| 500 | 服务器发生不可预期的错误 |
3.3.2 Content-Type参数
Content-Type 叫:是Internet Media Type,互联网媒体类型。存在于 请求中或响应中
如果出现在请求中,则表示:告诉服务端客户端实际发送的数据类型
如果出现在响应中,则表示:告诉客户端服务端实际发送的数据类型
在【请求】中,常见的数据类型有:
application/x-www-form-urlencoded → 以 “ 键—值 ” 对的方式组织的数据
- multiple/form-data → 一般需要上传文件的表单则用该类型
- application/json → JSON字符串格式提交数据
四、Fiddler抓包
4.1 Fiddler抓包原理
Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据
在打开Fiddler它的那一瞬间,它就已经设置好了浏览器的代理了
当你关闭的时候,它又帮你把代还原了,所以一般不需要手动设置。
Fiddler 是位于客户端和服务器端之间的HTTP代理,也是目前最常用的抓包工具之一 ,能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的 “ 进出 ” Fiddler的数据(如cookie,html,js,css等资源)
默认代理地址:127.0.0.1 端口:8888
个人理解:fiddler是一个抓包工具,当浏览器访问服务器会形成一个请求,此时,fiddler就处于请求之间,当浏览器发送请求会先经过fiddler,然后再到服务器,当服务器有数据返回浏览器时也会经过fiddler,然后数据才会在浏览器中显示,这样一个过程,fiddler就抓到了请求和响应数据的整个过程。
4.2 Fiddler基本设置
在首次使用时需信任Fiddler根证书:进入菜单栏的Tools > Options > HTTPS,勾选Decrypt HTTPS traffic并点击Actions > Trust Root Certificate。
确保设备与抓包目标在同一网络。对于移动端抓包,需在手机Wi-Fi设置中配置代理:服务器地址为电脑的本地IP(通过命令行输入ipconfig获取),端口默认为8888。手机浏览器访问http://<电脑IP>:8888下载并安装Fiddler证书。
4.2.1 过滤与捕获特定请求
过滤器,勾选Use Filters以启用过滤功能。
Filters → Hosts → No zone filter → Show only the following Hosts,在文本框输入要抓包的主机
多个域名使用“;”分割。Fiddler默认会筛选设置的Host,只显示设置中的Sessions。

4.2.2 四大主要功能介绍
- Inspector 查看请求报文、查看响应报文
- AutoResponder 设置自动响应
- Composer 构造请求
- Breakpoint 请求前断点——修改请求参数;请求后断点——修改响应报文
接口请求调试
假设您用工具(postman)做接口测试,按照接口文档要求构造请求参数。发现接口调用不能成功。开发告诉你程序不会有错。那么只有一种可能就是你构造请求出了问题。如何排查问题?——抓包分析
Inspector面板,请求报文和响应报文
4.2.3 修改请求报文
场景:假设前台页面限制某个输入框只能输入20个字符,需要测试接口该输入框长度超过20个字符接口是怎么处理的?
请求前断言功能

4.2.4 修改响应报文
场景:假设你测试某个UI功能,其中某个字段的长度最大值为100,但是你的请求获取到的内容都很小,无法看到字段长度很长时的界面的展示情况。那么,你可以修改响应报文,把返回的内容自行修改
请求后断言功能

4.2.5 自动应答
场景:前端工程师设计好界面后,想测试一下页面效果。但是后端工程师接口功能还未完成,无法调用。此时,前端工程师可以把某些请求设置为自动应答,响应返回本地测试数据
自动应答,AutoResponder功能

可以加入正则表达式来过滤css、jpg、png等请求,表达式为:
REGEX:(?insx) / [ ^ \ ? / ] * \ .(css|ico|jpg|png|gif|bmp|wav|js|jpeg)(\?.*)?$

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)