接口测试基础

一、认识接口测试


接口测试

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

  • 硬件接口

  • 软件接口



接口测试:基于不同的输入参数,校验接口响应数据与预期数据是否一致。


为什么要学接口测试?

  • 提前介入测试、尽早发现问题

  • 中级测试工程师必备技能


接口测试学什么?

  • 接口测试用例设计

  • 工具实现接口测试

  • 代码实现接口测试


二、项目介绍

项目介绍

  • 项目名称:客达天下

  • 项目类型:销售管理系统 (CRM)

  • 项目特点:

    • 前后端分离

    • 功能通用性强


熟悉项目

  • 项目角色:销售人员、销售经理、财务人员等

  • 项目业务:线索管理、合同管理等

  • 项目技术:


待测接口

复制代码
 需求:完成管理业务及相关单位模块接口测试。
合同管理业务
  登录
  添加课程
  上传合同
  新增合同
课程管理模块
  添加课程
  修改课程
  查询课程
  删除课程


接口测试流程


三、HTTP协议


URL

URL:是互联网上标准资源的地址,一般称为统一资源定位符。

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

示例:


HTTP协议

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

作用:规定了客户端与服务器之间信息传递规范,是二者共同遵守的协议。

组成:

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

    • 请求行、请求头、请求体
  • HTTP响应:定义响应数据格式

    • 状态行、响应头、响应体

HTTP ---请求行

位置:请求数据第一行

作用:说明需求方法、访问的资源、协议版本


常用请求方法:

  • GET:从服务器获取资源

  • POST:在服务器新建一个资源

  • PUT:在服务器更新资源

  • DELETE:从服务器删除资源


HTTP请求---请求头

位置:请求数据第二行到空白行之间

作用:通知服务器客户端请求信息

特点:请求头部由键值对组成,每行一对


Content-Type:请求体数据类型

  • text/html:HTML格式

  • image/jpeg:jpg图片格式

  • application/json:JSON数据格式

  • application/x-www-form-urlencoded:表单默认的提交数据格式

  • multipart/form-data:在表单中进行文件上传时使用


HTTP请求---请求体

位置:空白行之间的内容

作用:传输数据实体

注意:请求体常在POST、PUT方法中使用

常配合的请求头:Content-Type和Content-Length


  • 请求报文中可以没有请求体数据

HTTP响应---状态行

位置:响应数据第一行

作用:描述服务器处理结果

内容:状态行由协议版本号、状态码、状态消息组成


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

python 复制代码
 1XX:提示信息
 2XX:成功
 3XX:重定向
 4XX:客户端错误
 5XX:服务端错误

HTTP响应---常见的响应状态码


HTTP响应---响应头

位置:第二行开始到空白行之间

作用:描述客户端要使用的一些附加信息

特点:响应头由键值对组成,每行一对


HTTP响应---响应体

位置:响应数据空白行之后

作用:服务器返回的数据实体

特点:有图片、json、xml、html等多种类型


案例:


四、接口规范

接口规范

作用:让前端开发与后台接口开发人员更好的配合,提高工作效率

常见接口规范:

传统接口风格

RESTful接口风格


传统接口风格

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


RESTful

RESTful:一种网络应用程序的设计风格和开发方式,提供了一组设计原则和约束条件。

示例:


特点:

  • 请求 API 的 URL 用来定位资源
  • 通过标准HTTP方法对资源进行增删改查操作
  • 利用HTTP状态码返回状态信息

区别


Postman测试步骤


一、合同新增业务


二、找业务路径


三、解析接口文档


四、编写接口测试用例


总结


Postman使用

一、Postman介绍

介绍:Postman是一款接口调试工具

特点:支持 Mac、Windows 和 Linux

下载:

https://www.getpostman.com


二、登录接口调式

获取验证码

python 复制代码
 需求:使用postman访问验证码接口,并查看响应结果
 ​
 地址:
​​​​​​​ http://kdtx-test.itheima.net/api/captchaimage
 ​
 实现步骤
     1.设置请求方式
     2.输入接口地址
     3.点击发送请求
     4.查看响应结果

登录

python 复制代码
 需求:
 使用Postman访问验证码接口,并查看响应结果
 说明:
   地址:http://kdtx-test.itheima.net/api/login
   方法:post
   请求数据:
     请求头:Content-Type:application/json
     请求体:["username": "admin","password": 
            "admin 123","code":"2","
            uuid":"验证码接口返回结果中的数据值"]
 实现步骤:
   1.设置请求方式
   2.输入接口地址
   3.点击发送请求
   4.查看响应结果

总结


三、自动关联数据

问题:每次登录之前都需要手动复制验证码数据

思路:


自动关联数据

环境创建与选择


案例:使用自动关联技术,实现登录成功

需求:

python 复制代码
 1.验证码接口:/api/captchaimage
 2.登录接口:/api/login
 登录接口请求体uuid字段 -> 验证码接口返回 uuid字段

分析:

python 复制代码
 1.验证码接口响应体中提取uuid
 var jsonData = pm.response.json();
 2.设置环境变量保存uuid
 pm.environment.set("var_name",value);
 3.登录接口引用uuid
 请求参数中引用: {{var_name}}

总结


接口调式

一、添加课程接口调试


二、上传合同接口调试


Postman调试合同上传接口



三、新增合同接口调试

添加合同接口调试

注意:

测试数据中的合同编号 contracNo 必须唯一。


查询合同列表接口调试


总结


Postman进阶

一、批量执行


Postman批量执行

作用:通过运行测试集的方式批量运行测试用例

步骤:

  1. 点击测试集中的 "Run" 按钮,批量运行测试用例

  2. 弹出 Collection Runner窗口,点击运行按钮

  3. 查看测试结果





二、登录接口测试


案例:完成 KDTX项目登录接口用例设计

python 复制代码
需求:
  已注册正确的用户名和密码,登录成功
  用户名或密码错误,登录失败,提示 "用户名或密码错误"
  
需求:
  按照接口测试思路进行测试点分析
  从测试点转化为测试用例
  使用Postman进行接口测试

提取测试点


设计测试用例


步骤:

  • 点击测试集中的 "Add folder" 添加文件夹管理测试用例

  • 点击文件夹上的 "Add Request" 添加请求实现测试用例


总结


三、Postman断言

Postman断言介绍

作用:让Postman工具代替人工自动判定预期结果和实际结果是否一致。

用法:


Postman断言---响应状态码断言

模块名称:Status code:Code is 200

模块内容:

python 复制代码
// 判断响应状态码是否等于 200
pm.test("status code is 200", function() {
  pm.response.to.have.status(200);
});
pm.test() 
参数1:字符串-测试断言名称
参数2:回调函数-具体断言语句
pm.response.to.have.status(code:Number);  // 判断是否包含指定的状态码

Postman断言---包含指定字符串断言

模块名称:Response body: Contains string

模块内容:


Postman断言---JSON断言

模块名称:Response body: JSON value check

模块内容:



总结


四、参数化

Postman参数化介绍

场景:测试脚本中仅测试数据不一样,使用参数化比提高脚本复用。

步骤:

  • 测试数据保存在数据文件单独维护

  • 引用数据文件实现脚本循环调用


Postman参数化实现

准备数据文件


引用数据文件数据


Postman参数化实现

选择数据文件:运行测试集时选择数据文件



总结


课程项目实践

一、课程添加

课程添加接口文档



1.提取测试点


2.设计测试用例


3.使用Postman进行接口测试

步骤:

  • 点击测试集中的 "Add folder" 添加文件夹管理测试用例

  • 点击文件夹上的 "Add Request" 添加请求实现测试用例


总结


二、查询课程列表

查询课程列表接口文档



提取测试点


设计测试用例


三、课程修改

课程修改接口文档



提取测试点


设计测试用例


四、课程删除

课程删除接口文档



提取测试点


设计测试用例


相关推荐
Dreams°1236 天前
大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)
大数据·单元测试·可用性测试
娃哈哈_6 天前
基于Testng + Playwright的H5自动化巡检工具
测试开发·测试工具·自动化·html5·可用性测试·testng·playwright
Elastic 中国社区官方博客6 天前
如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
大数据·elasticsearch·搜索引擎·云计算·全文检索·可用性测试·aws
IT闫7 天前
ONLYOFFICE 8.2深度测评——助力自动化办公
运维·自动化·可用性测试
Elastic 中国社区官方博客9 天前
什么是 OpenTelemetry?
大数据·数据库·elasticsearch·搜索引擎·全文检索·可用性测试
Linux运维老纪1 个月前
MySQL-MHA高可用集群部署(二)(MySQL MHA High Availability Cluster Deployment Part II )
数据库·mysql·云计算·可用性测试·devops
Srlua1 个月前
软件测试与软件缺陷的基础知识
软件测试·可用性测试
Elastic 中国社区官方博客1 个月前
OpenTelemetry 演示与 OpenTelemetry 的 Elastic 分发
大数据·数据库·功能测试·elasticsearch·搜索引擎·可用性测试
会洗碗的CV工程师1 个月前
828华为云征文|使用sysbench对Flexus X实例对mysql进行性能测评
数据库·mysql·华为云·压力测试·可用性测试
从零开始的-CodeNinja之路2 个月前
【软件测试】详解软件测试中的测试级别
测试工具·单元测试·集成测试·可用性测试·测试覆盖率