LinuxGUI自动化测试框架搭建-总体需求&详细设计&框架设计
2023-06-13 09:18:29 时间
1 实现目的
- 在LInux操作系统上,针对桌面端软件,模拟用户(鼠标、键盘)操作,达到快速、重复执行测试用例;
- 便于回归测试,快速覆盖主线用例或功能;
- 线上或线下巡检测试,结合持续集成,及时发现运行环境存在的问题;
- 提升个人自动化测试技术能力,为业务提供强有力的测试手段。
2 功能需求
- 基于Unittest,封装、调用和组织所有的测试用例,进行批量或指定用例运行;
- 支持邮件服务,可添加任意团队成员邮箱,及时通知团队成员自动化运行结果;
- 支持log日志,保存运行过程所有或需要记录的数据;
- 支持HTML测试报告,直观展示测试结果和数据;
- 支持用例设计和测试结果分离,便于数据管理;
- 支持用户登录封装,后续所有的用例登录公用一个方法;
- 支持任意修改Beautifulreport,可定制测试报告模板;
- 支持测试报告多语言(英文和中文);
- 支持截图功能;
- 支持Jenkins持续集成;
- 基于Dogtail自动化测试技术。
3 其他要求
- 原则上适用于所有的Linux操作系统,如Centos、Ubuntu、RedHat、UOS等等;
- 模块化设计,项目框架形式组织代码;
- 公共方法封装,统一调用;
- 数据和结果分开,清晰明了;
- 支持邮件自定义;
- 代码注释清晰。
4 适用人员
- 有一定测试基础的软件测试人员;
- 有一定的代码(Python/Java)功底;
- 有一定的Linux系统操作基础人员;
- 有一定的虚拟机操作或容器操作技术人员;
- 致力于学习LinuxGUI自动化测试的所有人员。
5 学习周期
- 两个星期到一个月,可达到独立进行LinuxGUI自动化测试;
6 学习建议
- 建议按照文章顺序,一步一步进行学习和实践;
- 文章是从基本的环境搭建到最终框架完全搭建的一个过程,相对来说还是比较详细的;
- 文章偏向于项目实战,未有太多的理论介绍和名词解释,所以对0基础的人员来说,可能需要额外的时间去补充一下知识。
7 需求分析
对 实现需求进行详细分析,主要有下:
功能 | 说明 |
---|---|
使用Unittest框架 | 开源自动化测试框架,直接使用 |
批量或指定用例运行 | Unittest框架可支持此功能 |
log日志 | 使用Python的logging库即可 |
生成HTML测试报告 | 使用BeautifulReport模块可实现此功能 |
用户登录封装 | 直接把登录功能模块化,使用Unittest框架中的setup,teardown即可 |
定制测试报告模板 | 使用BeautifulReport模块 |
报告多语言 | 使用BeautifulReport模块 |
截图功能 | dogtial的 screenshot |
8 技术栈
技术 | 版本及说明 |
---|---|
Python | V3.x(本文为3.10)===编程语言支撑 |
Dogtail | V0.9.10===控件的识别、定位及操作 |
BeautifulReport | 生成Html测试报告 |
Logging | Python自带===生成log日志 |
Unittest | Python自带===自动化测试框架 |
Smtplib | Python自带===邮件服务 |
Python自带===邮件服务 | |
os | Python自带===系统模块 |
PyCharm | Community 2023.1 |
操作系统 | Ubuntu |
sniff | Dogtail自带===控件识别 |
9 框架设计
9.1 框架说明
9.2 框架执行流程
10 预期结果
10.1 测试过程log日志
10.2 测试报告html格式
10.3 测试报告邮件格式
相关文章
- WMO&ECMWF机器学习次季节预报比赛结束,全部代码已开源!
- Redis的过期策略&内存淘汰策略
- iOS小技能: 用纯代码开发界面的过程 & 图片使用的相关注意事项
- 2022 SmartNIC & DPU Awards年度评选结果发布
- New Edge & Chromium Error - Package is invalid: 'CRX_VERSION_NUMBER_INVALID'
- CUT&Tag:DNA-蛋白质互作研究“革新”技术,引领微量细胞表观遗传学
- 谷粒学院day0&day1——项目介绍与mybatis plus入门
- 零零信安-D&D数据泄露报警日报【第33期】
- CentOS 6.5 & CentOS 7 rpm安装ftp服务端与ftp客户端「建议收藏」
- Kubernetes集群仪表盘dashboard&Kuboard安装Demo
- gitlab远古版本8.5.8备份&还原&升级
- Deep dive#Milvus 新版本功能解读 & 测试分享
- 【超详细】*和&在C/C++中的常见用法(附示例讲解)
- 因果推断&计算机网络、体系结构与代码生成 | 犀牛鸟精英人才计划课题宣讲会第七场
- AMP与Oracle结合提升数据库性能($amp oracle)
- 实用的利用CSS+<em>标签来完成一个三角形的制作
- C的|、||、&、&&、异或、~、!运算符