HTTP网络协议与接口测试逻辑

很多测试人员都做过接口测试,但是聊到接口还是会不太清楚。

网络协议:但凡要做接口测试,一定要懂网络协议。目前市场主流的网络协议HTTP1.1,Dubbo2,HTTP2.O(相对较少)

HTTP1.1网络协议:

  • 搞懂打开浏览器访问一个URL会经历的步骤有哪些?(也就是搞懂了HTTP网络协议的基本交互流程)
    • 解析URL,将域名解析为IP地址
    • 与IP地址进行通信,建立TCP连接通道
    • 从本地将请求发送至IP地址的服务端
    • 服务端基于数据请求,进行对应的响应生成
    • 将响应进行原路返回到用户端
    • 基于前端进行数据的解析与渲染,生成可以被直接浏览的内容
    • 关闭TCP连接通道
  • 请求如何发送?
    • 请求的结构:
      • 请求行
      • 请求头
      • 请求体
    • 请求发送的目标:
      • 目标通过URL来进行区分
      • URL全称统一资源定位符,作用就是用来区分不同的内容
    • 请求方法:
      • 每一个接口的请求方法都是固定的,只能通过定义好的请求方法来进行数据的发送
      • 常见请求方法:GET/POST
      • 所有接口本身所支持的请求方法都在接口定义的时候就已经定义好了。
    • 请求数据:
      • 请求的参数
    • 请求规范:
      • 都是在请求头中进行定义
    • 请求额外数据的附加:
      • 一般附加在请求头中
      • 附加的数据一般都是cookie数据
  • 响应是如何生成与返回的?
    • 响应的结构:
      • 响应行
      • 响应头
      • 响应体
    • 响应的状态码:三位数的一个数据
      • 1xx 表示请求已接收,响应正在处理中
      • 2xx 表示请求接收,响应已返回,一切正常(只是表示发送请求成本,生成响应成功。但是响应结果是否符合业务的预期结果,无法确定)
      • 3xx 表示重定向,请求的目标地址转义到另一个地址
      • 4xx 表示请求出现问题,404表示请求的地址不存在。400表示请求的参数有问题
      • 5xx 表示服务器内部异常,500的状态码就很大概率是系统出现BUG
    • 响应的cookie保存策略:
      • 所有响应在生成的时候,会在响应头中定义到set-cookie字段
    • 响应规范:
      • 都是响应头中进行定义
    • 响应文本:(一般要做业务层级的断言,都是基于响应文本来实现)
      • 业务层级的接口响应结果。

接口测试逻辑

所有的接口测试,都遵循一个公式:

  1. 准备测试数据
    1. 要清晰地知道接口的请求数据包含有哪些内容?
    2. 要清晰地知道这些数据从哪里获取?
  2. 模拟请求
    1. 要实现接口测试,必须从模拟请求开始
    2. 要清晰地知道请求的数据以什么样的形态进行下发(请求方法、请求数据格式、请求数据类型等相关的信息)
    3. 要清晰地知道请求的url
  3. 判断响应结果
    1. 要获取到对应的响应结果(可以是响应文本,可以是响应头,一切以业务来进行决定)
    2. 要有明确的判断对象(要知道什么内容才是你的判断点)

接口测试不需要等前后端联调结束,在后端开发完成的时候就可以介入接口测试了。虽然接口测试就是简单的三个步骤,但是,会需要因为情况而进行一些额外的拓展。包括但不限于Mock、数据库的数据关联等一系列内容。

相关详细讲解可以参考:接口定义+Http网络协议原理解析+Requests库+工具的接口测试......

相关推荐
咖啡星人k3 小时前
2026 AI 自动化测试:让 AI 帮你写用例、跑测试、修 Bug(MonkeyCode 云端实战)
人工智能·功能测试·单元测试·测试用例·bug·集成测试
挨踢诗人3 小时前
金蝶K3 WISE × 乐企平台 直连数电票集成解决方案(商贸企业开票自动化)
大数据·运维·自动化
MC皮蛋侠客10 小时前
DNP3 系列(十二):测试与工具链——模拟器、Wireshark 与一致性测试
网络·wireshark·dnp3
虎王物联10 小时前
工业Modbus TCP协议深度实战:STM32 HAL库实现从机通信与数据上云
stm32·物联网·网络协议·tcp/ip·嵌入式
观测云11 小时前
Fastjson 高危 RCE(CVE-2026-16723):如何用观测云快速发现并完成修复
网络·安全·可观测性·观测云
吴声子夜歌12 小时前
Java面试——HBase原理及应用
java·面试·hbase
吴声子夜歌12 小时前
Java面试——ElasticSearch原理及应用
java·面试·es
吴声子夜歌12 小时前
Java面试——Spring原理及应用(一)
java·spring·面试
++==13 小时前
RESTful详解:核心思想、框架、与HTTP的区别,API的设计风格
后端·http·restful
liangshanbo121513 小时前
Nginx 进程管理命令深度面试题解析
java·nginx·面试