接口测试基础

一、认识接口测试


接口测试

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

  • 硬件接口

  • 软件接口



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


为什么要学接口测试?

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

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


接口测试学什么?

  • 接口测试用例设计

  • 工具实现接口测试

  • 代码实现接口测试


二、项目介绍

项目介绍

  • 项目名称:客达天下

  • 项目类型:销售管理系统 (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" 添加请求实现测试用例


总结


二、查询课程列表

查询课程列表接口文档



提取测试点


设计测试用例


三、课程修改

课程修改接口文档



提取测试点


设计测试用例


四、课程删除

课程删除接口文档



提取测试点


设计测试用例


相关推荐
山水阳泉曲11 天前
ffmpeg安装测试(支持cuda支持SRT)
ffmpeg·可用性测试·cuda·新版本·srt
云夏之末11 天前
HTTP与HTTPS在软件测试中的解析
网络协议·http·https·可用性测试
山水阳泉曲14 天前
udp可靠传输中ACK与NACK的选择
网络·网络协议·udp·可用性测试
山水阳泉曲16 天前
TCP长连接、短链接测试代码
网络·网络协议·tcp/ip·信息与通信·可用性测试
qq_2003373922 天前
界面交互体验测试
功能测试·测试用例·可用性测试
Feng.Lee1 个月前
聊一下测试工程师在研发领域的发展
功能测试·可用性测试
开测开测1 个月前
day16-测试自动化之selenium的PO模式
开发语言·python·selenium·单元测试·自动化·测试用例·可用性测试
N_00501 个月前
性能测试工具LoadRunner
java·测试工具·性能优化·可用性测试
cooldream20091 个月前
可用性测试:提升用户体验的关键
可用性测试·ux
Tech行者1 个月前
车联网的汽车测试技术:深度解析与技术前沿
python·数据分析·汽车·集成测试·可用性测试