自动化测试难?WPS的UI自动化落地方案甩给你
项目背景分析
UI自动化测试,即通过模拟手动操作用户UI界面的方式,以代码方式实现自动操作和验证的一种自动化测试手段。如今互联网的主战场已经从web端逐渐过渡到了app端。现在,app在UI自动化方面的框架已经比较成熟,目前我选择的是Appium,今后也会对网易Airtest进行调研推广
UI能解决什么问题?
- 重复性的功能测试及验证
- 避免疲惫操作时的人为测试遗漏
- 线上功能的稳定性72小时回归
UI的优缺点是什么?
- 在实际应用中,UI自动化可以帮助我们节省人工测试成本,提高功能测试的测试效率。
- 缺点也是比较明显,随着敏捷迭代的速度越来越快,UI控件的频繁变更导致控件定位不稳定,提高了用例脚本的维护成本,同时定位的不稳定导致用例的可信度降低。
UI的应用场景
- 主要应用于冒烟测试、回归测试、Dailybuild等阶段。
UI存在的意义
- 存在即合理,软件测试的金字塔模型告诉我们越是底层,用例的执行速度越快,维护成本越低。到了最上层的UI时,执行速度处于比单元测试、接口测试慢,比手工测试快的这种阶段。维护成本上比单元测试,接口测试要高。
那么为什么需要做UI自动化呢?
- 实施起来较容易:刚开始接触测试自动化时,都是先接触UI的自动化。UI的框架比较成熟,容易上手,相关学习文档比较全面。实施起来一般都不依赖于源码,是比较容易落地的一种自动化测试手段。
- 覆盖范围广:UI上的一次操作的函数触发数量可能会非常多,相比较而言更贴近模仿用户的真实体验操作
需求背景
- 每个版本都需要执行大量的老功能回归Case,重复工作量较大
- 随着App功能的逐渐增加、回归测试点逐渐增多,在保证测试覆盖度的前提下,整体的回归测试时长在增长,增加了测试压力。在针对老功能回归测试的过程中,因回归测试点比较多,可能存在测试点漏测的情况
目标
- 覆盖大部分的回归测试Case,帮助大家执行部分功能的回归测试,减少回归测试的人工成本
- 利用UI自动化测试 自由分配、随时可执行的优势,增加已有功能的测试频率,在版本开发工程中,尽早发现因新更改影响已有功能的情况
- 对线上已发布的版本,进行主流程功能监控
技术方案
1. 用例编写简单,降低上手门槛
由于测试人员的代码编写能力参差不齐,让业务同学可以快速上手编写是基本诉求。封装基本操作,测试人员无需关心底层实现,直接调用封装好的API即可
2. 降低用例维护成本
- 当UI控件发生改动时,我们需要对对应的控件定位方式进行修改。一般地,一个控件会被多条甚至几十条用例引用到,那么维护成本与引用数量成正比,引用的地方越多,维护成本越大。如何降低控件修改成本是非常关键的。
- PO模型搭建,将定位元素、元素操作、测试用例分层处理,解决UI自动化的元素经常变换导致代码失败率高的问题把一处控件改动对应多处引用修改的一对多关系变为一对一关系,即无论引用了多少处此控件只需要修改一处代码。
3. 失败重试机制,提高用例稳定性
由于用例执行的稳定性直接决定用例在业务落地时的可信度,所以提高用例稳定性是必要的,框架提供了失败重试的机制来间接保证稳定性。即当监听到用例执行失败异常时,重新执行当前用例逻辑,如果执行成功,覆盖当前用例的执行结果;如果失败,重新执行,直到超过重试次数。
4.协助快速定位问题的能力
框架提供了日志和失败时截图进行分析和定位问题的能力。
5.数据统计的能力
框架提供了提供了最终执行报告,详细记录最近10次的执行结果和报错截图
6.Appium并发
在每个平台进程内,根据设备列表,为每个设备分配Appium端口,互不冲突为每个设备再启动一个进程,独立执行Case,并发跑脚本得到最终结果。多平台多设备同时执行相同Case,在进行功能测试的同时进行兼容性测试(这里这边管理方案暂时采取TotalControl实现,后期搭建STF多设备兼容性平台)
7.结果通知
执行结果后通过邮件的方式发送最终的结果,日常回归时发现BUG集成微信平台实现实时报警
8. UI测试对接CI平台
与jenkins结合、更自由、敏捷的执行,设立每日回归场景,版本测试场景,功能覆盖场景通过jenkin、配置自动化执行,使用场景如每天下班时自动跑一下用例,或者当研发打了新包后自动开始运行测试脚本测试新包,下班或周末采用多设备兼容性测试。
实现目标
自动化测试难?WPS的UI自动化落地方案甩给你相关推荐
- python+selenium+EcShop 学习UI自动化测试和感受自动化测试的魅力(UI自动化)
哈喽!小伙伴们好,你们的朋友像疯一样!又来了,这次分享的是学习UI自动化测试环境和让小伙伴们感受到自动化测试的魅力,实现计算机控制网站.学习路上虽有困难,但是我们一起向前,加油!与前一期一样,文末会有 ...
- python自动化测试难不难_Python测试自动化好学还是Pythonweb开发好学?
还是测试吧... 用动态语言搞开发,项目大了根本没法维护,而且还会bug层出不穷,任谁也Hold不住.真想搞开发,要么玩Java,要么玩C#. 下面举个例子. 比如一个游戏项目,是这样的(伪代码):角 ...
- 我猜你没听过UI自动化技术?
来自:高德技术 一.背景 汽车导航作为ToB业务,需要满足不同汽车厂商在功能和风格上体现各自特色的需求.针对这种情况,传统的UI开发方式,基本上是一对一的特别定制.但是这种方式动辄就要500~600人 ...
- 手工测试如何转向自动化测试?字节5年自动化经验浅谈一下...
手工测试的迷茫:除了重复劳动,到底还有什么? 我是在2008年毕业的,3本的学校,不上不下的专业水平,毕业的时候,恰好遇到了金融危机.校园招聘里阴差阳错的巧合,让我走上了软件测试工程师的道路. 入职第 ...
- 网易有道 UI 自动化探索与落地方案
前言 文末给大家准备了资料(好几套面试题加学习资料等),需要自取! <Succeeding with Agile>一书中提出了测试金字塔这个概念.它将软件测试按照不同的粒度进行分类,越上层 ...
- 软件测试技术篇:UI自动化到底是难是易?
UI自动化技术,是我们测试工程师绕不开的一个话题,只要提起它来,基本所有测试工程师都能给你说道说道. 有些人认为它很难,有些人认为它很简单.认为它很难的人会告诉你,UI自动化非常不稳定,太难了,实用性 ...
- UI自动化新思路-基于RUNTIME的自动化测试设想
[背景] 移动端app飞速发展后,导致各种自动化框架雨后春笋般的发展.纵观这类框架都在声称对于控件的操作是很牛逼的,深入分析后可以看出它们最终会回归到UI基本的坐标点操作. 于是,app自动化测试工程 ...
- Ui自动化概念+Web自动化测试框架介绍
目录 UI 1.UI自动化测试概念:我们先明确什么是UI 2.为什么对UI采用自动化测试? 3.什么项目适合做UI自动化测试? 4.UI自动化测试介入时机 5.UI自动化测试所属分类 Web自动化测试 ...
- python ui自动化测试仪器_python UI自动化测试
为了减小维护成本: 1.UI自动化测试需要有较为稳定的环境 2.代码设计合理,那么我们就需要面向对象的设计一个框架,将重复的代码模块化 一.首先总结一下 UI自动化大概要哪些模块 1.config(配 ...
最新文章
- 信息与计算机科学考研学校排名,计算机科学与技术考研学校排名
- RFC 4303--ESP
- C语言实现二进制文件读写
- 源自Google、Facebook、Netflix和Cisco的10款开源安全工具很值得回味
- MongoDB 优化器profile
- MVC设计模式学习总结
- mysql常用操作(一)
- lvm 扩展根目录_转://如何增加linux根目录的磁盘空间(基于LVM)?
- CVPR 2020 算法竞赛大盘点
- iOS关于rar解压第三方库Unrar4iOS使用总结
- 又被ESLint 调戏了!!! ESLint:Newline required at end of file but not found. eslint(eol-last) [12, 22]
- 医学AI又一突破,微软开源生物医学NLP基准:BLURB
- 记tcp网络编程中遇到的readline()方法
- 一次使用针式打印机打印异常问题的处理
- 运行lidar_align进行全局优化时出现程序中断问题
- goahead 移植
- php斯芬克斯,找回自我 走出斯芬克斯之谜
- protect 和 private 的区别
- mysql 处理字符串 减断,MySQL字符串处理[8题]
- 点击化学试剂DBCO-PEG-MMPs 二苯并环辛炔-聚乙二醇-基质金属蛋白酶