API接口自动化测试框架搭建之需求整理、详细设计和框架设计
2023-03-07 09:02:10 时间
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自带===邮件服务 |
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 框架设计
3.1 框架说明
3.2 框架数据流
4 预期结果
4.1 测试过程log日志
4.2 测试报告html格式
4.3 测试报告邮件格式
4.4 Excel用例格式
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的