百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

浅谈前端(UI)自动化测试(前端自动化是什么意思)

ccwgpt 2024-10-10 04:43 36 浏览 0 评论

作为一名测试开发从业者,自动化测试好像是绕不开的话题...。结合最近接触到的一些测开应聘同学聊到关于前端自动化测试及自己的理解,分享一下自己对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自动化录制工具)进行整体页面的自动化测试。


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

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

相关推荐

React 开发翻车现场!这 6 个救命技巧,90% 工程师居然现在才知道

前端圈最近都在卷React18新特性,可咱开发时踩的坑却一个比一个离谱!组件卡死、状态乱套、路由错乱...别担心!今天分享6个超实用的React实战技巧,让你轻松拿捏开发难题,代码直接...

Web前端:React JS越来越受欢迎,它的主要优点为什么要使用它?

  ReactJS是一个开源JavaScript库,用于为单页应用程序构建用户界面,它还为不同的移动应用程序提供视图层,并创建可重用的UI组件。  我们可以在Web应用程序的数据中创建特定的更改,而...

性能焦虑!前端人必看!5 个 React 组件优化神技! 颠覆你的认知!

在前端开发的赛道上,性能优化就像一场永不停歇的马拉松。作为前端工程师,你是否常常为React组件的性能问题头疼不已?页面加载缓慢、组件频繁重渲染,这些痛点分分钟让开发进度受阻。别担心!今天就来分享...

React 实战必学!99% 工程师踩过的 5 大坑,3 招教你轻松破解

前端开发的小伙伴们,咱就是说,React现在可是前端界的“顶流明星”,热度一直居高不下!但用它开发项目的时候,是不是总有那么些瞬间,让你怀疑人生,对着屏幕疯狂抓头发?别慌!今天就给大家分享几个超实...

惬意!午间一道 React 题,轻松拿捏前端面试小技巧

忙碌了一上午,眼睛酸涩、脑子发懵?别急着刷短视频“放空”,不如花几分钟和我一起“品尝”一道React面试题小甜点!就像在阳光洒满窗台的午后,泡一杯热茶,惬意又能悄悄涨知识,何乐而不为?最近,...

一起深入盘点 2025 年 React 发展的 10个趋势?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1.React服务器组件React服务...

前端掉坑血泪史!4 个 React 性能优化绝招让页面秒开

在前端圈子里摸爬滚打这么多年,我发现React开发时踩坑的经历大家都大同小异。页面加载慢、组件频繁重渲染、状态管理混乱……这些痛点,相信不少前端工程师都感同身受。别愁!今天就给大家分享4个超...

前端人崩溃瞬间!5 招 React 实战技巧让项目起死回生

有没有在写React项目时,遇到页面卡顿到怀疑人生、数据更新不及时、代码逻辑混乱到无从下手的情况?别慌!作为摸爬滚打多年的前端老炮,今天就把5个救命级的React实战技巧倾囊相授,帮你轻松...

8.3K star!React Bits,让你拥有全网几乎所有动画效果

前端开源项目101专栏:一个能让你更快接触到高质量开源项目的地方。我会探索分享精选101个高质量的开源项目。这是系列的第7篇文章,分享一套拥有计划全网所有动画效果,且创意最丰富的动画React组...

开始学习React - 概览和演示教程

#头条创作挑战赛#本文同步本人掘金平台的原创翻译:https://juejin.cn/post/6844903823085944846当我刚开始学习JavaScript的时候,我就听说了React,但...

阿里AI工具Web Dev上线!一句话生成React网页

5月11日,阿里巴巴推出全新AI工具“WebDev”,支持用户通过一句话指令生成网页应用。该工具集成HTML、CSS、JavaScript三大前端核心技术,并统一采用React框架实现,可在数秒内创...

JS流行框架/库排名Top100,看看你熟知的Js排第几

权威的JavaScript趋势榜stats.js.org每15分钟根据github上的stars和forks总数实时汇总出JavaScript开源项目的流行度排名,一起来看看你所熟知的项目排名第几...

新手如何搭建个人网站

ElementUl是饿了么前端团队推出的桌面端UI框架,具有是简洁、直观、强悍和低学习成本等优势,非常适合初学者使用。因此,本次项目使用ElementUI框架来完成个人博客的主体开发,欢迎大家讨论...

站在巨人肩膀上的 .NET 通用权限开发框架:Admin.NET

站在巨人肩膀上的.NET通用权限开发框架Admin.NET是一个面向.NET程序员的低代码平台,java平台类似的框架有ruoyi,芋道,JeelowCode等。这类框架普遍采用前后端分离的开发技...

Python+selenium自动化之判定元素是否存在

在测试过程中,我碰到过这类的问题,使用find_element却找不到某个元素而产生异常,这就需要在操作某个元素之前判定该元素是否存在,而selenium中没有判定元素是否存在的方法,或者判定相同的元...

取消回复欢迎 发表评论: