作为一名测试开发从业者,自动化测试好像是绕不开的话题...。结合最近接触到的一些测开应聘同学聊到关于前端自动化测试及自己的理解,分享一下自己对UI自动化测试的认识,大概如下。

测试分层的自动化测试思想

自动化测试分层思想所倡导的是对系统进行分层,针对不同层次选择合适的自动化类型进行测试的一种测试策略,同时自动化测试分层思想也与测试阶段(单元测试、集成测试、系统测试)具备相关性。项目的自动化测试覆盖程度取决于各分层自动化测试分层策略设计的合理性、全面性。

Unit-单元测试

一般由开发人员开展测试,也就是我们日常所说的开发人员对自己开发代码的自测过程。

Service-服务集成的接口自动化测试

通常指的是API接口自动化测试,在分层自动化测试的应用中,接口自动化是最常见的自动化解决方案。

同时,结合数据驱动测试框架、关键字驱动测试框架可以满足大部分测试场景,包含含有复杂业务逻辑的功能的覆盖(B接口依赖A接口返回),同时降低测试代码的冗余。特别是在前后端分离的产品架构设计中,可以对功能点进行有效的覆盖,至于页面显示、页面元素布局、展示的验证可以通过手工测试或者其他工具覆盖。

UI-页面自动化测试

UI层是与用户进行交互的,用户通过与UI层交互使用系统功能。测试人员的大部分测试工作(黑盒测试)也集中在这一层。根据个人实践经验,大部分场景下都不推荐UI自动化,难以做到高效的维护,投入产出比不可控。关于UI自动化的三点建议如下:

  • 优先考虑底层自动化覆盖,尽量不进行UI自动化覆盖。
  • 优先考虑核心功能的自动化覆盖,降低非核心功能的自动化覆盖。
  • 着重考虑自动化的可扩展性、易维护性设计。

自动化测试开展的必要条件

首先,是否开展自动化,通常需要同时满足以下条件:

  • 软件需求变动不频繁(超过10%的变动是频繁变动,同时10%并不是一个固定值,根据其维护、扩展成本适当调整阈值)
  • 项目周期足够长
  • 自动化测试用例可重复使用

同时,自动化测试的是否易于扩展、易于维护对其可持续性而言非常重要。


自动化测试的局限性

一方面,自动化测试的局限性体现在上述其开展的必要条件,如果在不满足其必要条件的背景下,开展自动化会发现自动化并不会提高测试效率,甚至可能加大了测试成本。

另一方面,UI自动化与接口自动化本身的局限性,UI自动化较接口自动化而言其具备覆盖率高的优势(接口测试无法覆盖页面元素、格式、数据),接口自动化较UI自动化而言具备高扩展、易维护、问题修复成本低的优势。


自动化测试的目的

自动化测试的直接目的是围绕产品质量提高测试效率,其根本目的(效率转化)无外乎以下几点:

  • 真正的实现项目人力投入的缩减
  • 做更多更有意义的测试,比如更深入的需求分析、测试设计或者对测试左移、右移的投入;
  • 适应开发模式的转变,比如类敏捷、devops、testops模式下的频繁迭代、持续部署、质量运营等。

前端自动化测试

我们知道UI自动化其开展的前提更强调系统的稳定性,不稳定的系统会导致频繁的自动化用例维护,这种维护成本是巨大的,甚至会出现原本两个人测试的项目,引入UI自动化现在需要三个人测试的情况。那么系统稳定性高,改动的可能性较小的情况下如何进行UI自动化?——建议参考Robot Framework + Selenium2Library,同时自动化测试设计时考虑数据与代码分离,以便减低维护成本,提高其可扩展性。

如果系统的稳定性一般,存在需求改动、页面优化的可能性,如何开展高覆盖的自动化测试?——建议参考Robot Framework + RequestsLibrary +Python requests(自定义关键字库开发)实现接口自动化,也需要考虑数据与代码分离的设计策略,同时RobotFramework支持数据驱动,用例编写效率会得到很大的提升。基于此再使用UI Recorder(阿里开源的一款零成本UI自动化录制工具)进行整体页面的自动化测试。


最后,充分考虑易维护性、易扩展性的自动化测试策略设计,是可以实现自动化测试前移的,并非只能用于系统稳定或者回归测试的场景中。

希望以上分享对你有所帮助,欢迎大家关注、评论、留言。

ui自动化测试框架_浅谈前端(UI)自动化测试相关推荐

  1. 安卓和ios的ui设计区别_浅谈IOS和Android界面设计尺寸规范

    刚开始接触UI的时候,碰到的最多的就是尺寸问题,什么画布要建多大,文字该用多大才合适,我要做几套界面才可以?什么七七八八的也着实让人有些头疼. 废话不多说,希望大家耐心看完后,不要再纠结于尺寸相关的东 ...

  2. pythonweb框架_浅谈python web三大框架

    Django请求回应机制 Django(ORM.URL分发系统.MTV ) Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.它最初 ...

  3. 2022浅谈前端八大UI库

    之前在3月份的时候做过一个<浅谈前端八大UI库>的公开课,反馈还不错,当时就想着等有时间了,就把公开课讲的东西,组织成一个博客.这一等,就等了两个多月. 先说一下什么样的同学适合看这个博客 ...

  4. 浅谈前端自动化构建 -- Grunt、Gulp、FIS

    前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:内容较多,建议通过左侧导航栏进行阅读 前端自动化构建 基本介绍 一切重复工作本应自动化.将开发中的源代码,自动化的转换成生产环境中可以运行的程序, ...

  5. selenium自动化测试框架_自动化测试框架

    为了适应快速发展的行业生态系统的步伐,必须加快应用程序交付时间,而且必须不能以质量为代价.在更短的时间内达到质量的目的至关重要,因此质量保障倍受关注.为了满足对卓越质量和更快迭代的要求,越来越多的企业 ...

  6. 浅谈前端路由原理hash和history

    浅谈前端路由原理hash和history

  7. 《计算机辅助教学及应用实践研究》,《论文_浅谈计算机辅助教学(定稿)》

    <论文_浅谈计算机辅助教学(定稿)> (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 摘要:计算机辅助教学中要用到多媒体课件 ...

  8. python判断两个对象是否为相等使用的运算符是_Python入门_浅谈逻辑判断与运算符...

    这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...

  9. python ui自动化测试框架_基于python语言下的UI自动化测试框架搭建(一)

    最近在搭一个UI自动化测试框架,想把整个搭建过程分享出来,如果有不对的地方,希望大家能够指正,首先创建一个名称为,antomation_framework_demo的工程文件, pycharm中工程及 ...

最新文章

  1. 《Nature》发布毫米级软体机器人,可在没有任何物理干预情况下游走于人体
  2. ATMEGA328实验电路板
  3. Why is OFDMA a Magical Feature in the 802.11ax Standard?
  4. 盘点过去一年,MIT人工智能实验室的那些创新
  5. 5 个最受人喜爱的开源 Django 包
  6. 新手引导动画的4种实现方式
  7. python 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值
  8. Windows Server 2012 R2 或 2016 无法安装 .Net 3.5.1
  9. css background 一半_CSS小技巧
  10. 微软出品 Remote Desktop for Mac(远程连接工具) 汉化版
  11. [网络结构]DenseNet网络结构
  12. Windows远程桌面实现之二(抓屏技术之MirrorDriver镜像驱动开发)
  13. FineReport 参数查询
  14. 因为一件事,公司的前后端打起来了
  15. 安装nodejs遇到的坑
  16. latex 小于_小于等于 latex
  17. (转载)如何跟踪一个报错消息
  18. 从数组的响应式看下一代响应式数据
  19. js 取得 Unix时间戳(Unix timestamp)
  20. java设备imei号_java 怎么计算IMEI号码正确性

热门文章

  1. .Net 中的封装知识点
  2. java核心-多线程-Java多线程编程涉及到包、类
  3. SpringCloud(三)之Feign实现负载均衡的使用
  4. PHP和MySQL Web开发pdf
  5. 原生js简单实现双向数据绑定原理
  6. linux意想不到题4
  7. 【VirtualBox】VirtualBox的桥接网络模式,为啥网络不稳定?
  8. 精通 ASP.NET MVC 4 学习笔记(一)
  9. 什么是CouchDB?
  10. 《WF编程》系列之30 - 基本活动:错误处理