API接口自动化测试框架搭建之需求整理、详细设计和框架设计

时间:2023-01-14 13:59:38

(API接口自动化测试框架搭建之需求整理、详细设计和框架设计)

1 需求整理

1.1 实现目的

  • API接口自动化测试,主要针对http接口协议;
  • 便于回归测试;
  • 线上或线下巡检测试,结合持续集成,及时发现运行环境存在的问题;
  • 提升个人自动化测试技术能力,为业务提供强有力的测试手段。

1.2 功能需求

  • 基于Unittest,封装、调用和组织所有的测试用例,进行批量或指定用例运行;
  • 支持邮件服务,可添加任意团队成员邮箱,及时通知团队成员自动化运行结果;
  • 支持log日志,保存运行过程所有或需要记录的数据;
  • 支持HTML测试报告,直观展示测试结果和数据;
  • 支持用例设计和测试结果分离,便于数据管理;
  • 支持token/cookie获取;
  • 使用HtmlTestRunner,可定制测试报告模板;
  • 全局变量配置,一键修改使用公用参数;
  • 支持单层接口依赖,可以扩展;
  • 使用excel管理测试用例,接口数据写起来快速方便;
  • 支持Jenkins持续集成;
  • **提供测试对象(基于Flask+Python的学生管理系统)**。

1.3 其他要求

  • 模块化设计,项目框架形式组织代码;
  • 公共方法封装,统一调用;
  • 数据和结果分开,清晰明了;
  • 支持邮件自定义;
  • 代码注释清晰。

1.4 适用人员

  • 有一定测试基础的软件测试人员;
  • 有一定的代码(Python/Java)功底;
  • 致力于学习API接口自动化测试的所有人员。

1.5 学习周期

  • 两个星期到一个月,可达到独立进行API接口自动化测试;

1.6 学习建议

  • 建议按照文章顺序,一步一步进行学习和实践;
  • 文章是从基本的环境搭建到最终框架完全搭建的一个过程,相对来说还是比较详细的;
  • 文章偏向于项目实战,未有太多的理论介绍和名词解释,所以对0基础的人员来说,可能需要额外的时间去补充一下知识;
  • 文章重点是教如何搭建框架,因项目的差异化,可能要对框架中的部分代码进行修改。

2 详细设计

2.1 需求分析

实现需求 进行详细分析,主要有下:

功能 说明
使用Unittest框架 开源自动化测试框架,直接使用
批量或指定用例运行 Unittest框架可支持此功能
log日志 使用Python的logging库即可
生成HTML测试报告 使用HtmlTestRunner模块可实现此功能
用例设计和结果分离 复制用例另存并写入测试结果
用户登录封装 直接把登录功能模块化,使用Unittest框架中的setup,teardown即可
token/cookie获取 登录保持会话
全局变量配置 py配置文件
单层接口依赖 保存返回值,读依赖caseid,替换请求数据
excel管理测试用例 所有接口数据均在excel中维护
提供测试对象 依据一套学生管理系统,进行接口测试环境搭建

2.2 技术栈

技术 版本及说明
Python V3.x(本文为3.7)===编程语言支撑
Request V2.24.0===接口请求
HtmlTestRunner 支持Python3
Logging Python自带===生成log日志
Unittest Python自带===自动化测试框架
Smtplib Python自带===邮件服务
email Python自带===邮件服务
os Python自带===系统模块
openpyxl V3.0.5===操作excel
xlrd V1.2.0===操作excel
xlwt V1.3.0===操作excel
ddt V1.4.2===数据驱动
configparser V5.0.2===config配置文件操作
PyCharm Community 2020.2汉化版
操作系统 Windows10旗舰版64位
其它 后续补充

3 框架设计

API接口自动化测试框架搭建之需求整理、详细设计和框架设计

3.1 框架说明

API接口自动化测试框架搭建之需求整理、详细设计和框架设计

3.2 框架数据流

API接口自动化测试框架搭建之需求整理、详细设计和框架设计

4 预期结果

4.1 测试过程log日志

API接口自动化测试框架搭建之需求整理、详细设计和框架设计

4.2 测试报告html格式

API接口自动化测试框架搭建之需求整理、详细设计和框架设计

4.3 测试报告邮件格式

API接口自动化测试框架搭建之需求整理、详细设计和框架设计

4.4 Excel用例格式

API接口自动化测试框架搭建之需求整理、详细设计和框架设计