接口测试基础

【学完接口测试应该具备的能力】

  • 能对业务接口和单接口进行用例设计
  • 能使用Postman对接口进行调试
  • 能使用Python代码进行接口自动化测试
  • 能基于数据分离思想优化自动化代码
  • 能通过Allure生成自动化测试报告

【接口测试流程】

接口文档解析 --> 设计测试用例 --> 脚本开发 --> 执行脚本 --> 缺陷跟踪 --> 测试报告

前置知识

1、URL

  • URL:是互联网上标准资源的地址,一般称为统一资源定位符
  • 组成:协议 :// hostname[:port] / path / [?查询参数1 & 查询参数2]
    • 协议:数据传输的格式,如http、https等
    • 服务器地址hostname:域名或IP
    • 端口post:一个应用程序对外访问的唯一标识,常用:80(http)、443(https)【协议默认端口可以省略】
    • 资源路径path:主机资源的具体地址。包括目录和文件名等,用"/"隔开
    • 参数:客户端向服务器传递的数据;参数和路径之间用"?"隔开;多个参数用"&"隔开

2、HTTP

  • HTTP:超文本传输协议,基于请求与响应的应用层协议
  • 作用:规定了客户端与服务器之间信息传递规范,是二者共同遵守的协议
  • 组成
    • HTTP请求:定义请求数据格式
      • 请求行、请求头、请求体
    • HTTP响应:定义响应数据格式
      • 状态行、响应头、响应体

1)请求行

  • 位置:请求数据第一行
  • 作用:说明请求方法、访问的资源、协议版本
  • 常用请求方法
    • GET:从服务器获取资源
    • POST:在服务器新建一个资源
    • PUT:在服务器更新资源
    • DELETE:从服务器删除资源

2)请求头

  • 位置:请求数据第二行到空白行之间
  • 作用:通知服务器客户端请求信息
  • 特点:请求头部由键值对组成,每行一对
  • Content-Type:请求体数据类型
    • text/html:HTML格式
    • image/jpeg:jpg图片格式
    • application/json:JSON数据格式
    • application/x-www-form-urlencoded:表单默认的提交数据格式
    • multipart/form-data:在表单中进行文件上传时使用

3)请求体

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

4)状态行

  • 位置:响应数据第一行
  • 作用:描述服务器处理结果
  • 内容:状态行由协议版本号、状态码、状态消息组成
  • 状态码:三位数字组成,第一个数字定义响应类别
    • 1XX:指示信息
    • 2XX:成功
    • 3XX:重定向
    • 4XX:客户端错误
    • 5XX:服务端错误

5)响应头

  • 位置:第二行开始到空白行之间
  • 作用:描述客户端要使用的一些附加信息
  • 特点:响应头由键值对组成,每行一对

6)响应体

  • 位置:响应数据空白行之后
  • 作用:服务器返回的数据实体
  • 特点:有图片、json、xml、html等多种类型

3、接口

【接口规范】

  • 作用:让前端开发与后台接口开发人员更好的配合,提供工作效率
  • 常用接口规范
    • 传统接口风格
      • 对用户进行操作的相关接口,包括增删改查
      • 特点
        • 主要使用post、get方法
        • URL定位资源和操作混合
        • 状态码均为200
    • RESTful接口风格
      • 一种网络应用程序的设计风格和开发方式,提供了一组设计原则和约束条件
      • 特点
        • 请求API的URL仅仅用来定位资源,不包含对资源的操作
        • 通过标准HTTP方法对资源进行增删改查操作
        • 利用HTTP状态码返回状态信息

接口测试用例

如何设计业务流程测试用例?

  1. 根据流程图、找出业务路径
  2. 根据业务路径分析对应的接口
  3. 将业务路径转化为接口测试用例

1)找业务路径

2)解析接口文档 

  • 为什么要进行接口文档解析?
    • 熟悉接口信息,为设计接口用例准备
  • 接口API文档:
    • 一般由后端开发编写
    • 用来描述接口信息的文档
  • 如何进行接口文档解析?
    • 分析接口之间的依赖关系
    • 分析接口请求(如:URL、请求方法、请求头、请求参数类型、请求参数等)
    • 分析接口响应(如:响应状态码、响应数据等)

3)编写接口测试用例

ID模块优先级用例名称接口名称前置条件请求URL请求方法请求头请求参数类型请求参数预期结果
生成验证码//api/captchImageget///

响应状态码:200

响应数据:'{"msg":"操作成功", "img":"......","code": 200, "uuid":"xxxxxx"}'

登录//api/loginpost{"Content-Type":"application/json"}json

{

"username":"manager",

"password":"123456“,

"code":"2",

"uuid":"xxxxxx"

}

响应状态码:200

响应数据:'{"msg":"操作成功", "code": 200, "token":"xxxxxx"}'

新增课程

1、登录成功

/api/clues/coursepost{"Content-Type":"application/json","Authorization":"xxxxxx"}json

{
"name":"测试开发提升课01",

"subject":"6",

"price":899,

"applicationPerson":"2",

"info":"测试开发提升课01"

响应状态码:200

响应数据:'{"msg":"操作成功", "code": 200}'

课程列表查询1、登录成功/api/clues/course/listget{"Authorization":"xxxxxx"}//

响应状态码:200

响应数据:返回对应的json数据

合同上传1、登录成功/api/common/uploadpost{"Content-Type":"multipart/form-data","Authorization":"xxxxxx"}multipart/form-data/

响应状态码:200

响应数据:返回对应的json数据

新增合同1、登录成功/api/contractpost{"Content-Type":"application/json","Authorization":"xxxxxx"}json

{

"name":"测试888",

"phone":"13612341888",

"contractNo":"HT10012004",

"subject": "6",

"courseld": 99,

"channel": "0",

"activityld": 77,

"fileName":
"/profile/upload/2023/01/05/86e5a3b8-608c-470c-a17d-71375c3a8b9f.pdf"

}

响应状态码:200

响应数据:'{"msg":"操作成功","code":200}'

合同列表查询1、登录成功/api/contract/listpost{"Authorization":"xxxxxx"}//

响应状态码:200

响应数据:返回对应的json数据

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值