接口测试Day1:深入理解接口测试的概念与概览

前言


接口测试的学习与总结

接口测试

接口测试理论

接口:系统之间数据交互的通道

接口测试:校验接口响应数据与预期数据是否一致

接口测试价值:

  • 测试页面测试发现不了的问题
  • 符合质量控制前移理念
  • 测试成本低,效益高

接口测试的实现方法:

  • 工具
    • Postman
    • JMeter
  • 代码
    • Python + Requests
    • Java + HttpClient

HTTP 协议

HTTP:超文本传输协议,基于请求与响应的应用层协议

HTTP协议特点:

  • 客户端/服务器模式(C/S)
  • 简单快速
  • 灵活
  • 无连接
  • 无状态

URL组成:

1
协议://hostname[:port]/path/[?查询参数1&查询参数2]

说明:

  • URL:(Uniform Resource Locator)统一资源定位符,网络资源地址
  • HTTP使用URL来建立连接和传输数据

HTTP请求—定义请求数据格式 :

请求行,请求头,请求体

HTTP响应—定义响应数据格式

状态行、响应头、响应体

HTTP请求-请求行

  • 位置:请求数据第一行
  • 作用:说明请求的方法,访问的资源,HTTP协议版本
1
GET https://valyn.vercel.app/ HTTP/1.1

常用请求方法:

  • GET:从服务器获取资源
  • POST:在服务器新建一个资源
  • PUT:在服务器更新资源
  • DELETE:从服务器删除资源

HTTP请求-请求头

  • 位置:第二行到空白行之间
  • 作用:通知服务器客户端请求信息(可以为空)
  • 特点: 请求头部由键值对组成,每行一对

Content-Type:请求数据的类型

  • text/html: HTML格式
  • text/plain:纯文本格式
  • image/jpeg:jpg图片格式
  • application/json: JSON数据格式
  • application/x-www-form-urlencoded: 表单默认的提交数据格式
  • multipart/form-data: 在表单中进行文件上传时使用

HTTP请求-请求体

  • 位置:空白行之后的内容
  • 作用:传输数据的实体(可以为空)
  • 请求体常在POST、PUT方法中使用
  • 常配合的请求头:Content-Type和Content-Length

HTTP响应-响应行

  • 位置:响应数据第一行
  • 作用:描述服务器处理结果
  • 内容:状态行由协议版本号、状态码、状态消息组成
1
HTTP/1.1 200 OK

状态码三位数字组成,第一个数字定义响应类别:

  • 1xx:指示信息
  • 2xx:成功
  • 3xx:重定向
  • 4xx:客户端错误
  • 5xx:服务器端错误

HTTP响应-响应头

  • 位置:第二行到空白行之间
  • 作用:描述客户端要使用的一些附加信息
  • 特点:响应头由键值对组成,每行一对
1
2
3
4
5
6
7
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT Content-Type: text/html; charset=UTF-8

<html>
<head></head>
<body>...</body>
</html>

HTTP响应-响应体

  • 位置:空白行之后的内容
  • 作用:服务器返回的数据实体
  • 特点:有图片、json、xml、html等多种类型
1
2
3
4
5
6
7
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT Content-Type: text/html; charset=UTF-8

<html>
<head></head>
<body>...</body>
</html>

接口规范和测试流程

传统接口风格

举例:对用户进行操作的相关接口,包括增删改查

操作 请求方式 URL 成功状态码
查询某个用户 GET/POST http://127.0.0.1:8080/myweb/user/getById?id=1 200
查询所有用户 GET/POST http://127.0.0.1:8080/myweb/user/getUserList 200
添加用户 POST http://127.0.0.1:8080/myweb/user/addUser 200
修改用户 POST http://127.0.0.1:8080/myweb/user/updateUser 200
删除用户 GET/POST http://127.0.0.1:8080/myweb/user/deleteUser?id=1 200

RESTful

RESTful是一种网络应用程序的设计风格和开发方式,并不是必须要遵守的标准,只是提供了一组设计原则和约束条件

操作 请求方式 URL 成功状态码
查询某个用户 GET http://127.0.0.1:8080/myweb/users/1 200
查询所有用户 GET http://127.0.0.1:8080/myweb/users 200
添加用户 POST http://127.0.0.1:8080/myweb/users 200
修改用户 PUT http://127.0.0.1:8080/myweb/users/1 200
删除用户 DELETE http://127.0.0.1:8080/myweb/users/1 200

提供了一套统一遵守的规范,方便团队配合,提高工作效率

接口API设计规范

特点: 面向资源

  • 请求 API 的 URL 用来定位资源(名词表示)

    202310161924465.png

  • 通过标准HTTP方法对资源CRUD

    image-20231008130929615

  • 利用HTTP状态码返回状态信息

传统风格和RESTful对比

接口规范 请求方式 URL 状态码
传统风格 使用GRET/POST完成增删改查 url定义资源和操作的混合 遵循HTTP协议状态码定义
RESTful 遵循HTTP协议方法定义 URL仅定位资源,不包含对资源的操作 遵循HTTP协议状态码定义

接口测试流程

  • 需求分析
  • 接口文档编写
  • 设计测试用例
  • 执行测试用例
  • 缺陷管理
  • 编写测试报告

接口文档解析

接口解析

为什么要进行接口解析?

  • 熟悉接口的相关信息,为设计接口用例准备

接口解析要关注的核心要素?

  • 请求报文:请求方法/请求路径/请求数据

  • 响应报文:响应状态码/响应数据

接口文档:又称为API文档,是由后端开发编写,用来描述接口信息的文档。

为什么要写接口文档?

  • 协同:团队人员工作协同配合
  • 约束:项目更新修改同步维护

image-20231008131533825

后记