一、打造测试框架的需求与价值
- 领域模型适配:封装业务实现,实现业务管理
- 提高效率:降低用例维护成本,提高执行效率
- 增强功能:解决已有框架不满足的情况
二、自动化测试框架应具备的能力
- 支持管理用例、执行用例
- 支持查找元素/定位元素,以及对元素的各种操作(点击、输入、滑动)
- 支持生成测试报告
- 能够实现功能复用,(比如登录)
- 当页面有异常弹窗时,可以进行有效处理
- 当用例失败时,需要添加失败的日志、集团等信息,并附在测试报告中
- 支持设备并发
- 支持平台化
- ···
三、自动化测试框架实现
功能 | 实现 |
---|---|
管理用例,运行用例 | pytest |
查找、定位元素 | appium、selenium |
测试报告 | allure |
功能复用 | PO实现 |
异常弹窗 | 编写装饰器自动捕获 |
失败的日志、截图 | 编写装饰器自动捕获 |
多设备并发 | selenium grid |
平台化 | VUE+Flask/Django |
四、项目结构
结构 | 内容 |
---|---|
框架层 | 文件解析、日志收集、ini配置文件、数据驱动、用例数据、报告管理 |
基础层 | 基础driver封装、元素查找封装、元素操作封装、领域模型封装 |
业务层/PO层 | Page封装、首页PO、通讯录PO、添加联系人PO、编辑联系人PO |
测试用例层 | 测试用例集、添加联系人用例、编辑联系人用例 |
4.1、框架封装
- 异常处理(弹窗黑名单)
- 日志记录
- 报告生成
- 数据驱动
4.2、报告生成
- 异常日志
- 异常截图
- 测试用例步骤
- 测试描述
- bug,issue 关联
- 用例分类(feature,story,step 等)
4.3、参数化与数据驱动
- 支持支持测试用例 / 步骤层级的参数化驱动配置
- 配置方式包括三个部分
- 参数定义(指定名字)
- 数据源指定(指定 yaml 文件 /或者其它格式文件)
- 数据源准备(无论是从线上环境 捞的数据,还是自己创建的测试数据)
五、总结
- 自动化测试框架应具备的功能
- 自动化测试框架优化(在 PO 的基础上,添加异常处理,日志,报告 ,截图,参数化与数据驱动等)逐步的将框架完善