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

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

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

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

12fe7d7d92b329219aedc50f77e94f17.png

Unit-单元测试

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

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

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

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

UI-页面自动化测试

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

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

c39b5626e141e69c8719feeb25543010.png

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

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

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

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


自动化测试的局限性

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

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


自动化测试的目的

6754bf8fd31a49300e7302c7d63e40d5.png

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

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

前端自动化测试

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

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

1b4e99782e1542145a030aea270c31af.png

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转发】响应式Web设计?怎样进行?

什么是响应式Web设计?怎样进行?眼下,几乎每个新客户都希望他们的网站可以有专门的移动设备版本。最完美的情况呐,就是为iPhone、iPad、黑莓、Kindle…各自打造一款——页面分辨率还必须兼容任何设备。谁知道未来5年内我们还需要为…

cad坐标归零lisp_批量除一个数的lisp,请高手改成保留成设置小数位置。

我有一个在cad里批量除以一个数的LISP。其中《(setq newr (rtos (/ (atof old0) s0) 2 1))》的1就是决定小数点后保留1位的。请高手改一下,能否增加语句,能在cad里选择。现在,我是修改以后再加载,比较麻烦。lisp见下文。(加载命令…

基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能

说明: 本文档探讨基于Asterisk如何实现VoIP的一些基本功能,包括基本呼叫功能的方案选取、主叫号码透传、如何编写AsteriskAGI程序、Radius认证计费模块等。 本文档VoIP软终端使用X-Lite,其它终端均可以接入测试。 文章内容仅供参考,转载请注…

excel查重_发票查重工具,不止查重这么简单,你还可以体验这些新玩法

电子发票报销是目前所有行业的会计都要面对的一项重要工作,而目前电子发票报销的普遍方式都是打印报销,这样一来,会计就不得不面对企业员工将电子发票重复打印报销和篡改报销的风险,而其中,尤其以重复打印报销是会计不…

Android培训翻译_使你的程序感知位置

Dependencies and prerequisites Android 1.0 or higher (2.3 for the sample app)You should also read Location and Maps 位置和地图Try it out 下载示例代码(LocationAware.zip) Users bring their mobile devices with them almost everywhere. One of the unique feature…

python导出dxf图_在PDMS中使用python直接生成管口方位图(开源分享第三集)

在PDMS中使用python直接生成管口方位图(开源分享第三集)距离上一次发推送已有5个月之久,上周立了冬,这二季我为五斗米折了腰,最近才缓过气来。令我没想到的是,大家竟然对这个主题这么有兴趣,有关注者几次在私信询问我什…

基于Asterisk的VoIP开发指南(2)——Asterisk AGI程序编写指南

5. Asterisk AGI程序编写指南 5.1概述 很多时候,我们需要在拨号方案中做某些业务逻辑的判断或者外部数据库的查询,根据具体地需要,有几种做法: 1.使用Asterisk的通道变量、Goto函数、Gotoif函数等实现某些简单跳转…

win7关闭休眠_【科普】笔记本电脑,待机/睡眠/休眠有啥区别?(ACPI SPM S0-S5)...

本文聊聊笔记本电脑话题下,经常有人问到的内容——关机 睡眠 休眠 这三个选项有什么区别?电脑可以不关机只合上盖子吗?花了俩小时,求个赞,希望有专栏能收这篇内容~先说答案:快速唤醒:开盖/操作鼠…

k8s dashboard_【大强哥-k8s从入门到放弃02】Kubernetes1.17部署Dashboard2.0

号外号外,后面所有提升视频都会更新到知乎和B站上去,不会直接发群里了,哈哈,能看懂这句话的我都认识,大家可以先关注一下,我知乎上的所有文档也会录成视频更多视频详见 杨哥天云:https://space.…

asterisk 扩展应用(3)——IVR 实现

1 IVR 实现1.1 简单IVR配置 1:进入System Recordings,上传wav语音文件。语音文件必须是音频采样为16位。音频采样级别8kHz。使用PCM编码。 2:进入freepbx IVR模块,建立菜单 3:对入特殊设置可以加入custo…

Andoid 采用ListView三种显示数据列表

Android系统中列表形式的显示方式应该是我们最熟悉不过的界面了,例如通讯录、通话记录、信息列表等等,例如下面的形式: 我们在开发项目需要用到这种形式显示信息时除了调用系统给我们提供的ListView控件以外我们还可以自定义该控件&#xff0…

url采集器_Linux「第三节」-centos7.5部署数据采集器Telegraf

Telegraf采集器采集数据后,会存储到influxdb数据库,然后grafana从influxdb读取数据,在grafana面板上展示,整体的流程就是这样。下面就演示下Telegraf、influxdb、grafana相互间的配置与衔接下载Telegrafwget https://dl.influxdat…

css宋体代码_html布局中统一设置文字字体样式

html组织中对立设置装备摆设笔墨字体名堂后,结构部份时候须要变幻从新设置装备摆设一种字体若何完成呢?贪图门径:结构时先一般会抗衡设置装备摆设整个网页字体,预防差距浏览器显露不同默认字体,而设置装备摆设字体css属…

Asterisk队列(Queue)振铃方式(ring strategy)

队列振铃方式有:ringall,roundrobin,leastrecent,fewestcalls,random,rrmemory。 ringall是呼叫所有可到达的分机直到有接听的。 roundrobin是轮流呼叫每一个可以达到的分机。 leastrecent是呼叫最近被这…

简述用UCenter整合第三方应用程序

UCenter除了对实现用户通行,各个应用通用信息的存储和处理之外,还有一个重要的功能就是开放的接口协议,其他第三方应用程序通过简单修改,即可很容易将程序纳入UCenter体系中来,和其他应用共享用户以及其他数据 &#x…

西门子主程序调用子程序_S7200Smart 子程序局部变量使用教程

全新的 S7-200 SMART 带来两种不同类型的 CPU 模块,标准型和经济型,全方位满足不同行业、不同客户、不同设备的各种需求。标准型作为可扩展 CPU 模块,可满足对 I/O 规模有较大需求,逻辑控制较为复杂的应用 ;而经济型 C…

电脑怎么结束进程_深刻了解windows系统的任务管理器,电脑高手的成长之路

伙伴们我们每天都在用电脑,电脑和手机已经离不开了,可以说手机和电脑就是我们的左膀右臂。我们用电脑的时候,如果电脑卡了或者反应慢了,我们都会想到吧任务管理器调出来看看,可以说调出任务管理器就像医生看病一样&…

Asterisk 1.4.42将成绝唱

随着Asterisk 1.4最后的bug维护日期已过,当Asterisk 1.4.41在4月26日发布之后,Digium随即宣布将择机发布Asterisk 1.4的最后一个版本——1.4.42。如果有什么bug需要报告的,有什么代码需要提交的,赶紧提交,这将是为Aste…

hdu4353 Finding Mine三角形内的点数

http://acm.hdu.edu.cn/showproblem.php?pid4353 题意&#xff1a; 求多边形面积和这个多边形内的金矿数的比值的最小值。 当xi<xj<xk时&#xff1a; 三角形内的点数|ik上方的点-(ij上方的点jk上方的点)| 1 #include <iostream>2 #include <cstdio>3 #inclu…

手机连接投影机的步骤_家用投影仪如何安装 家用投影仪安装方法【步骤详解】...

家用投影仪怎么安装 根据安装方式的不同&#xff0c;投影仪可以分为桌式正投、吊顶正投、桌式背投、吊顶背投几种。方便随时随地使用的便携式投影仪一般是桌式正投&#xff0c;这种投影方法受环境光影响较大 但如果装修时就设计成吊顶正投方式&#xff0c;不仅在性价比方面更加…