UI自动化测试

1、about自动化测试

定义:把人为驱动的测试转化为机器执行的一种过程,重点在于持续集成这个概念;

优势:节约人力和时间成本;

测试金字塔

如上图所示,敏捷大师Mike Cohn提出该概念,然后由Martin Fowler大师在此基础上提出了测试分层概念,以区别于传统的自动化测试。

2、自动化测试分层

单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如java的Junit、TestNG,python的unittest,常见的手段是code review等;

接口自动化测试(业务逻辑层):主要检查验证模块间的调用返回以及不同系统、服务间的数据交换,常见的接口测试工具有postman、jmeter、loadrunner等;

UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT、Robot Framework、Selenium、Appium等;

性价比:按照测试金字塔模型以及投入/产出比,越向下,回报率越高;

Google的自动化分层投入占比:

小测试(Unit):占比70%;

中测试(Service):占比20%;

大测试(UI):占比10%;

自动化测试面临的挑战:面临的最大挑战就是变化,因为变化会导致测试用例运行失败,所以需要对自动化脚本不断debug,如何控制成本、降低成本是对自动化测试工具以及人员能力的挑战。

3、什么样的项目适合自动化测试

如上图所示,真正工作中无法全部满足以上条件,所以需要作出权衡,一般来说,只需要满足以下几点,就可以对项目开展自动化测试(图中红色框标注的选项):

①需求稳定,不会频繁变更

自动化测试最大的挑战就是需求的变化,而自动化脚本本身就需要修改、扩展、debug,去适应新的功能,如果投入产出比太低,那么自动化测试也失去了其价值和意义;

折中的做法是选择相对稳定的模块和功能进行自动化测试,变动较大、需求变更较频繁的部分用手工测试;

②多平台运行,组合遍历型、大量的重复任务

测试数据、测试用例、自动化脚本的重用性和移植性较强,降低成本,提高效率和价值;

③软件维护周期长,有生命力

自动化测试的需求稳定性要求、自动化框架的设计、脚本开发与调试均需要时间,这其实也是一个软件开发过程,如果项目周期较短,没有足够的时间去支持这一过程,那自动化测试也就不需要了;

④被测系统开发较为规范,可测试性强

主要出于这几点考虑:被测试系统的架构差异、测试技术和工具的适应性、测试人员的能力能否设计开发出适应差异的自动化测试框架;

4、常见的自动化测试工具简介

UFT(Unified Functional Testing)

即原来的QTP(Quick Test Professional Software)与ST(Service Test)合并而来,由HP公司开发,是一个企业级的商业自动化测试工具,提供了强大易用的录制回放功能,

同时兼容对象识别模式与图像识别模式,支持B/S和C/S两种架构的软件测试;

Robot Framework

一款基于python语言编写的自动化测试框架工具,具备良好的扩展性,支持关键字驱动,支持多种类型的客户端和接口,可进行分布式测试;

Selenium

应用于web的自动化测试工具,支持多平台、多浏览器、多语言来实现自动化,优点如下:

①开源、免费;

②多浏览器支持:chrome、Firefox、IE、Edge等;

③多平台支持:Linux、Windows、MAC;

④多语言支持:java、python、Ruby、C#、JavaScript、C++;

⑤对web界面有良好的支持;

⑥简单(API简单)、灵活(开发语言驱动);

⑦支持分布式测试用例执行;

5、做UI自动化测试,需要什么技能

①前端相关技术
HTML、XML、JavaScript、TCP/IP协议等

②一门编程语言

就像前面说的,selenium支持多种语言,根据个人情况以及项目的开发语言酌情选择;

③合适的工具选型

比如selenium,比如UTF等;

④需求分析

项目类型,特质,生命周期,是否适合开展自动化测试等;

转载:https://home.cnblogs.com/u/imyalost

原文地址:https://www.cnblogs.com/anhao521/p/10912112.html

时间: 2024-10-06 09:02:01

UI自动化测试的相关文章

如何提高UI自动化测试的质量

背景 项目是基于Ruby on Rails开发的web程序,应该说项目中的测试实践是很好的,具有高覆盖率的单元测试以及比较合理的集成测试.存在的问题是,所有的单元测试和集成测试都是针对后端代码的,前端的JavaSript代码没有单元测试(这个是有历史原因的,暂时没法改变).这也就意味着针对前端UI的修改是没有底层的单元测试来保障的,只能依靠高层级的UI自动化测试和手工测试来保障. 我们最近刚刚完成了一个story,是纯前端的开发工作,结果在上线后发现我们在修改页面模板文件时,忘记了其他地方也在使

Mac下的UI自动化测试 (上)

在我看来,实现UI自动化测试的过程一向都是令人快乐的事情,而维护它们就是跟噩梦一样了,尤其是对每次CI产生的build进行BVT测试,由于开发不会告诉你任何UI的变化,那么你拿到的测试结果就势必会一片红了.但是对于界面相对稳定的项目,有大量回归测试需要进行的项目,实现UI自动化的投资回报率还是很高的. 最近我实现了公司一个产品在Mac OSX上的UI自动化测试,下面就把具体的细节写出来. 首先,选用的是由 MIT 研究团队发布的图形化编程技术 Sikuli,它以图像检索为基础,提供了一套基于 J

Android Espresso(UI自动化测试)的搭建

Espresso是Google官方提供的Android UI自动化测试的框架. 为什么叫Espresso(浓咖啡),好像是想让Android码农们轻松的写完自动化用例后能享受着咖啡,看着自动化测试"飞". 这是Espresso官方的地址.另外,也推荐大家看这个YouTube上关于Espresso环境搭建的短视频. Espresso环境搭建 下面将基于Android Studio,介绍如何搭建Espresso. 1. 在Android Studio中新建一个Project; 2. 修改P

[转]Android UI 自动化测试

介绍 Android测试支持库包含UI自动化模块,它可以对Android应用进行自动黑盒测试.在API Level 18中引入了自动化模块,它允许开发者在组成应用UI的控件上模仿用户行为. 在这个教程中,我将展示如何使用此模块来创建和执行一个基本的UI测试,选择默认的计算器模块进行测试. 先决条件 在使用前,需要具备以下条件: 最新版本的Android Studio 运行Android 4.3或者更高版本的设备或者虚拟器 理解JUnit 1. 安装依赖库 工程中使用UI自动化模块,需要编辑你的工

在UI自动化测试中使用flaky插件运行失败用例

在UI自动化测试中,有时候经常会提示跑用例失败,在单步或单个用例调试时,用例却成功,这个失败的因素主要有环境.代码或前端定位等原因. 可以看这篇文章<我们是如何让UI测试变得稳定的>中有详细说明,但是,在这里,我们不讨论问题,我们来看看优化 项目中原来的自动化框架是基本nose的,nose中有一个选项为: --failed Run the tests that failed in the last test run. 可以单独运行上次测试中失败的用例,但貌似与我的想法有点背离,我的需求是失败后

【腾讯TMQ】解放程序猿(媛)的双手—iOS UI自动化测试

解放程序猿(媛)的双手-iOS UI自动化测试 前言 随着移动互联网时代的蓬勃发展,移动终端的自动化测试也在业界日益活跃,总体来看在Android平台上的自动化工具和实践比较多,但是说到iOS平台无论从自动化工具的数量还是质量上就陡降了.究其原因,无外乎是iOS系统的封闭性,加上相对Android用户的数量少,导致对这个平台系统的自动化进展缓慢,据笔者了解到的情况,很多iOS平台的测试人员还处于纯手工测试模式,自动化程度和Android平台无法相论,更别提和PC端相比了. 然而越是困难的事,越是

关于去哪儿网的UI自动化测试脚本(Python实现)

UI自动化测试Qunar机票搜索场景访问Qunar机票首页http://flight.qunar.com,选择“单程”,输入出发.到达城市,选择today+7日后的日期,点“搜索”,跳转到机票单程搜索列表页.在列表页停留1分钟,至到页面上出现“搜索结束”.如果出现航班列表,对于出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表中会出现“第一程”. “第二程”:对于没有出现“每段航班均需缴纳税费”的行随机点选“订票”按钮,在展开的列表底部中会出现“报价范围”如果不出现航班列表,则页

UI自动化测试元素定位思想

2014年的最后一天,以一篇短文纪念一下. 经常看到有同学说UI自动化测试定位难,找不到北.这话是不错的,定位是难,灵活且复杂,需要经验加技术,但是有写东西是可以提炼出来作为思想去推而广之的. 简单来说,UI元素定位思想应该如下: 大道至简 大道至简指的是有明显特征的元素一定要用明显的特征去定位.比如有id有name的元素,就不要舍近求远,一定要用最简单的办法去定位. 分而治之 一般来说,良好的html代码页面结构是很清晰的.很多同学在用class定位的时候经常会发现页面上有很多同名class,

软件测试培训 UI 自动化测试详解

软件测试培训小编有好久都没有跟新软件测试,从今天开始,小编会逐渐把这部分知识给大家补上!今天这篇文章给大家介绍的是: UI 自动化测试 互联网产品的迭代速度远高于传统软件,尤其是移动APP不但更新频繁,还需要在不同硬件.系统版本的环境下进行大量兼容测试,这就给传统测试方法和测试工具带来了巨大挑战.为满足产品敏捷开发.快速迭代的需求,自动化测试逐渐流行起来.自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程. 自动化测试的优点很多,简单罗列几条:避免重复工作.提高测试效率.保证每次测试地一

ui自动化测试的意义与理解

分层测试的思想 分层测试(有的也叫测试金字塔)是最近几年慢慢流行.火热起来的,也逐渐得到了大家的认可,大家应该已经比较熟悉分层测试的思想了,不太了解的可以自行找一些相应的渠道去补充一下上下文的知识. 总的来说测试需要有层次感,不同层面的测试需要不同形态的测试方法来保证其质量. 分层测试的思想把测试分为3层: * unit test层:可以简单的理解为白盒测试层.测试的对象是代码,测试工具一般为相应语言对应的单元测试框架,通过各种断言来判断代码的逻辑是否符合预期. 单元测试用例一般是从代码中演化出