本周开始学习接口测试相关知识,首先对接口测试基础知识点做一个总结,方便后期查阅与复习。主要内容有:

目录

一、接口测试概念

(一)接口概念

(二)接口类型

(三)接口测试

1、接口测试原理

2、接口测试的特点

3、接口测试的实现方式

二、接口自动化测试

(一)http协议的特点

(二)http协议的组成

(三)URL

(四)HTTP请求

1、请求行

2、请求头

3、请求体

(五)HTTP响应

1、状态行

2、响应头

3、响应体

三、接口规范

(一)传统接口风格

(二)RESTful接口

1、定义

2、RESTful接口风格

3、RESTful架构特点

四、接口测试流程


一、接口测试概念

(一)接口概念

接口是指系统或组件之间的交互点,通过这些交互点可以实现数据的交互(数据交互的通道)

接口可分为:硬件接口和软件接口,这里只关注软件层面的接口

(二)接口类型

  • 系统之间的接口:多个内部系统之间的交互,内部系统和外部系统之间的交互
  • 程序内部的接口:方法与方法之间,模块与模块之间的交互

(三)接口测试

接口测试:是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系。

1、接口测试原理

模拟客户向服务器发送请求,服务器返回响应数据后,检查响应数据是否符合预期。

2、接口测试的特点

  • 测试可以提前介入
  • 可以发现一些页面操作发现不了的问题
  • 低成本高效益
  • 从用户的角度进行全面的检测

3、接口测试的实现方式

  • 接口测试工具:JMeter、Postman
  • 代码:Python+Requests

二、接口自动化测试

让程序或工具代替人工自动完成对接口进行测试的一种过程。

(一)http协议的特点

  • 支持客户端/服务器模式
  • 简单快速
  • 灵活
  • 无连接
  • 无状态

(二)http协议的组成

  • 请求:
  • 响应:

(三)URL

http://www.itcast.cn:8080/news/index.html?uid=123&page=1

  • 协议:常见的http、https、ftp
  • 域名:也可以是ip地址
  • 端口:8080,端口默认(http:80,https:443,ftp:21)
  • 资源路径
  • 查询参数

(四)HTTP请求

http请求由三部分组成,请求行、请求头、请求体

博学谷android项目实战第二版设计方案 博学谷软件_客户端

1、请求行

  • 用来说明请求方法、要访问的资源及所使用的协议版本
  • 常用请求方法
  • get:获取数据
  • post:新建数据
  • put:修改数据
  • delete:删除数据
  • 其他请求方法(了解):
  • head
  • trace
  • connect
  • options

2、请求头

请求头紧接着请求行,请求头部由键值对组成,每行一对。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

  • User-Agent:产生请求的浏览器类型
  • Accept:客户端可识别的内容类型列表
  • Content-Type:请求体数据的类型,常见的类型有:
  • text/html:HTML格式
  • text/plain:纯文本格式
  • image/jpeg:jpg图片格式
  • application/json:JSON数据格式
  • application/x-www-form-urlencoded:form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据格式)
  • multipart/form-data:在表单中进行文件上传时使用

3、请求体

  • 请求体不在GET方法中使用,经常在POST、PUT方法中使用
  • 请求体的数据可以是:表单数据、文本、XML、JSON
  • 与请求数据相关的最常使用的请求头是Content-Type和Content-Length

(五)HTTP响应

http相应由三个部分组成,状态行、响应头、响应体

1、状态行

  • 协议版本号、状态码、状态消息
  • 状态码相应级别:
  • 1XX:请求已接收,继续处理
  • 2XX:成功,请求已被成功接收、理解、接受
  • 200:服务器成功返回用户请求的数据
  • 201:新建或修改数据成功
  • 3XX:重定向,要完成请求必须进行更进一步的操作
  • 4XX:客户端错误
  • 401:用户没有授权,令牌、用户名、密码错误
  • 403:用户有授权,但是访问被禁止
  • 404:页面不存在
  • 5XX:服务器端错误

2、响应头

描述服务器的基本信息,以及数据的描述,通过这些数据的描述信息,可以通知客户端如何处理响应数据。

3、响应体

响应的消息体,数据可以是普通文本、XML、JSON、HTML源码

三、接口规范

(一)传统接口风格

(二)RESTful接口

1、定义

一种架构风格、设计风格,不是标准,只是提供了一组设计原则和约束条件。

翻译过来是:(资源)表现层状态转化。如果一个架构符合REST原则,就称为RESTful架构。

2、RESTful接口风格

请求方法与状态码的对应:

博学谷android项目实战第二版设计方案 博学谷软件_数据_02

3、RESTful架构特点

  • 每个URL代表一种资源
  • 客户端和服务器之间,传递这种资源的某种表现层
  • 表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML 格式、JSON 格式表现,甚至可以采用二进制格式。
  • 客户端通过四个HTTP动词,对服务端资源进行操作,实现“表现层状态转化”
  • 常用的HTTP动词
  • get:获取资源
  • post:新建资源
  • put:更新资源
  • delete:删除资源
  • 每发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转化”(State Transfer)。而这种转化是建立在表现层之上的,所以就是 “表现层状态转化”。
  • 接口之间传递的数据最常用格式为json

四、接口测试流程

  • 需求分析
  • 依据需求文档
  • API接口文档解析
  • 由开发人员编写接口文档(API文档)
  • 设计测试用例
  • 执行测试
  • 使用接口测试工具
  • 代码实现
  • 缺陷跟踪与管理
  • 生成测试报告
  • 接口自动化持续集成(可选)