UI自动化框架如何设计及搭建?

article/2025/10/19 0:01:06

目录

UI自动化框架

自动化原则:

如何减少自动化维护成本?

UI自动化框架优化方案:(在不增加维护成本前提下)

UI自动化脚本可分为3种:

已经实现自动化的模块可以不做手工测试了吗?

UI自动化公式:

其他

UI自动化框架

把UI自动化框架设计成一个拼图性质的架构。把每个特性都设计成一个独立的部分,然后组装成UI自动化框架: 
(appium/webdriver)底层操作封装特性 
Page Object特性 
测试用例管理特性 
测试执行引擎特性 
测试报告管理特性 
测试数据管理特性 
keyword特性

自动化原则:

1.选择重点业务 
2.选择较稳定的版本业务 
3.目标是保证主要功能业务完整正常,而不是为了发现更多的bug 
4.并不能减少人力成本,主要作用是加快测试反馈,提高测试质量 
5.录制回放,关键字驱动,可视化等一般不是好的选择,因为他们会增加6.脚本维护的难度,增加维护成本 
7.任何增加维护成本的自动化工作都是在耍流氓

                   

如何减少自动化维护成本?

1、清晰、方便的日志查看 
2、清晰整洁的测试报告 
3、快速的脚本调试 
4、快速的错误定位方式:如截图、错误日志、录屏 
5、严格的脚本规范 
6、在策略上,脚本慢慢上,要非常稳定了才能上线到正式环境 
7、定时开展培训分享工作,提升大家的能力。写UI自动化不只是工作任务,更是自我提升的过程 
8、要有稳定的环境、稳定网络,可以进行网络监控、定时重启等等

UI自动化框架优化方案:(在不增加维护成本前提下)

1.UI自动化框架加入录屏模块 
2.UI自动化框架加入接口请求报错模块 
3.UI自动化框架加入接口流程对比模块 
4.UI自动化框架加入用例成功率、用例增长率等图表展示度量模块 
5.UI自动化框架加入web平台支持,如用例集管理,异步执行 
6.UI自动化框架加入监控核心场景的性能,如网络、启动速度、内存消耗等 
7.UI自动化框架加入报错时取内存快照、报错堆栈等信息 
8.自动化测试环境一键搭建部署

UI自动化脚本可分为3种:

1、监控脚本,监控服务器是否正常,监控每个页面是否能正常显示 
2、主流程脚本,监控主流程是否能正常运行 
3、模块脚本,优先级较低,一般也是重点业务模块先做

已经实现自动化的模块可以不做手工测试了吗?

为了不做手工测试,就要多加很多验证点,特别是UI的验证点。验证点越多,就会导致自动化越不稳定,自动化的维护成本就会越高, 
你对自动化的信心就会越低,自动化的成效也会越低。所以已经实现自动化的模块还是可能需要做手工测试。 
那么自动化测试的意义何在呢? 
- 自动化用执行次数来增加价值,执行次数越多,自动化价值越大。比如执行5次刚好成本和价值等价,那么每多执行一次,自动化的价值就越多。 
- 特别是那些需要重复进行UI操作,比如适配测试,需要适配几十个机型,是自动化去执行好呢还是一个个的手工执行好呢。 
- 我们不使用自动化去保证UI的准确性,而是去进行逻辑功能的测试。比如QQ的登录功能,我们只要验证点击登录后打开了好友列表,就说明登录成功了。就是要怎么稳定怎么弄。 
- UI自动化主要作用是保证业务流程的贯通 
- UI自动化能够帮助我们确保不会出现一些死人的问题,比如登录不成功,页面打不开等等。

                      

UI自动化公式:

自动化收益 = 有效迭代次数 x 手工测试成本 
自动化成本 = 脚本创建成本 + 维护次数 x 维护调试成本 + 脚本失败次数 x 脚本排错成本

其他

1.测试工具、框架和自动化测试脚本本身的质量是最需要保证的,需要对测试工具、框架做单元测试 
2.自动化可以模拟用户真实的场景,如让用户在一个页面等待10分钟或锁屏、解锁,该app是否还生存 
3.把手工用例与脚本生成的用例文档进行对比,提示当前有哪些用例需要维护 
4.在代码集成到主干之前或之后先执行自动化,只要用例失败(可以设阈值),则不能集成或回滚 
5.持续集成并不能消除bug,而是让它们非常容易被发现和修复 
6.自动化要集成到持续集成过程中,目的是加快测试反馈,降低测试引入、发现到修复之间的时间间隔 
7.速度是评估测试价值的最重要考虑因素之一


http://chatgpt.dhexx.cn/article/ZxpUPHUZ.shtml

相关文章

接口自动化框架

接口自动化框架讲解 框架结构 接口测试框架的结构如下图所示: 接口测试框架的结构说明: - API用于封装被测系统的接口(用requests模块封装的请求方法) - TestCase将一个或多个接口封装成测试用例,并使用UnitTest管…

什么是自动化框架?

前言 无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料,加上自己的一些实践,算是对“…

接口自动化框架搭建

1.自动化测试流程 -- 需求分析。需求文档,接口文档,抓包接口 -- 测试计划。通常包含项目的进度,是否自动化,优先级 -- 测试用例(是从手工测试提取出来的) -- 用例评审 -- 执行测试。(写代码…

2023最全自动化测试框架讲解,不会真不行!

无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料,加上自己的一些实践,算是对“框架”…

【测试开发】几种常见的自动化测试框架

几种常见的自动化测试框架 在软件测试领域,自动化测试框架有很多,这里主要介绍几种常用的自动化测试框架。 1.pytest pytest 是 Python 的一种单元测试框架,与 Python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起…

【自动化框架】

自动化测试框架就是:为了对一个指定的系统做自动化测试而封装的一个半成品,自动化测试攻城狮可以调用这个半成品封装好的方法去实现一个指定系统的自动化测试。 根据驱动模式不同自动化测试框架分为四种模式: (1) 数据驱动框架 (2) 关键字…

常见的主流自动化测试框架,这5种能帮到你很多

今天我们要向大家介绍的是常见5种主流自动化测试框架,包括优缺点等内容,供大家参考学习。 1.ATF 自动化测试框架AutoTestFramework是B/S架构框架,可实现Selenium等多种自动化测试全流程、团队化管理的高级框架平台,通过集成自动化…

【自动化测试】自动化测试框架与工具

文章目录 1)什么是自动化测试框架?1.1 什么是框架?1.2 什么是自动化测试框架?1.2.1 优点:1.2.2 框架的基本组件1、需要配置文件管理:2、业务逻辑代码和测试脚本分离3、报告和日志文件输出4、自定义的库的封…

从零搭建完整python自动化测试框架(UI自动化和接口自动化 )——持续更新

本自动化测试框架采用python unittest 的基础来搭建,采用PO模式、数据驱动的思想,通过selenium来实现WEB UI自动化,通过request来实现接口自动化。移动终端的自动化也可在该框架基础上去构建补充。 目录 总体框架PO模式、DDT数据驱动、关键字…

Linux必备的小技巧——查看历史操作和屏显信息

通常在linux查看历史操作信息,都是查看日志文件,Linux的日志文件一般都保存在/var/log文件夹下: 用如下命令即可查看: cat filename 查看日志,会打开整个文件,直接跑到最后面tac filena…

linux下安装CUDA和cudnn

linux下安装CUDA和cudnn 2、安装CUDA10.1 在CUDA官网选择系统对应的版本下载CUDA 我的系统是Ubuntu18.04 64位,我选择下载最新版本的CUDA10.1: 输入以下命令安装CUDA sudo sh cuda_10.1.105_418.39_linux.run 显卡驱动已在上面安装了,这里一…

Linux和其他操作系统的区别

前言 这是我听老师讲课做的笔记,考试要看的。 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 为什么用Liunx系统 Linux和windows的区别Linux和Unix操作系统的区别 Linux和windows的区别 1.免费与收费 Windows 平台: Window…

linux下如何查看驱动?(CH341)

文章目录 背景命令 背景 Linux下有时候我们在接上串口后,在/dev/下找不到ttyUSB*,这时我们需要查看下本机是否安装了相应的驱动。 命令 lsmod | grep ch341 如上图,便是表示目前pc中存在ch341驱动,无需重新安装。

linux怎么查询数据库端口,linux下怎么查看数据库端口

满意答案 ai_yuming 2017.08.26 采纳率:50% 等级:8 已帮助:759人 如何查看mysql 默认端口号和修改端口号 1. 登录mysql [root@test /]# mysql -u root -p Enter password: 2. 使用命令show global variables like port;查看端口号 mysql> show global variables like …

Linux的历史背景和基本指令

众所周知,Linux和大家所熟悉的Windows一样,也是一款操作系统,不同的更多是在于Windows是闭源的,而Linux是开源的。现代生活中的比如飞机的控制系统、银行的系统、手机的系统等等,都和Linux操作系统相关,所以…

Linux安装围棋AI(q5go和katago)

最近一个多月开始学习围棋,因为平时常用的系统是Linux,所以想要在Linux上安装一个围棋AI,可以借助AI分析棋局。经过一番查找,决定使用q5go和katago,安装还是挺复杂的,特地记录(/摸鱼&#xff09…

Linux 常用命令 查看 CPU 信息

强力推荐-不要错过,万一能帮助到自己呢? 推荐一个网站,关于人工智能教程,教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里…

Linux命令查看Linux服务器内存、CPU、显卡、硬盘使用情况

查看内存使用情况 使用命令: free -m 大致结果类似下图: 内存占用情况 参数解释: Mem行(单位均为M): total:内存总数used:已使用内存数free:空闲内存数shared&…

Ai-WB2系列模组linux开发环境搭建

文章目录 一、Ubuntu安装1.1 安装VMware Workstation Pro1.2 安装Ubuntu 二、编译三、烧录固件到设备3.1 方式一:用命令行烧录3.2 方式二:用可视化软件烧录(windows) 三、自定义工程如何修改Makefile四、开发资料 一、Ubuntu安装 …

用js动态显示当前时间

用setTimeout动态显示当前时间&#xff1a; <div class"showTime"></div> <script>var t null;tsetTimeout(time,1000);//开始运行function time(){clearTimeout(t);//清除定时器dt new Date();var y dt.getFullYear();var mt dt.getMonth()1…