UI自动化,你值得拥有
去年春节联欢晚会,为了那张“敬业福”,全家都卯足了劲儿“咻一咻”,连节目都顾不上看了。当时我就想,要是能自动化该多好,不停点击屏幕,屏幕不疼手还疼呢,何况还不好分心,生怕错过了“敬业福”。玩“咻一咻”,是靠不停点击按钮来检查是否得到“敬业福”,而工作中的UI自动化,大抵也和“咻一咻”差不多,都是通过不断地输入,验证系统的输出是否正确。然而做UI自动化,效果并不好,收益低就算了,执行速度还慢。比如打开一个浏览器,可能就要等3-5秒,如果等浏览器访问网址,返回网页内容,就需要更长的时间。要是遇到问题,还要排除各种干扰才能定位。而要是做接口或者单元测试,不但定位问题范围小,响应也基本都是毫秒级的,即使遇到慢的,差不多1秒钟也能返回结果了。这么一对比,UI自动化就像是一件吃力不讨好的事儿,所以去做UI自动化,大概是因为它独特的角度:从用户体验来验证系统的正确性。
要做UI自动化,以web方向来说,要是有一个好框架,就方便多了。如果编程基础好,可以自己写框架或者修改现有框架,封装常用业务逻辑和代码,提高测试效率。要是不会编写框架,也可以使用开源的工具,比如Robot Framework,它既支持关键字驱动、数据驱动,也支持接口测试,在官网稍做学习,就能初步使用。要是既不会写框架,也不会用工具,那你也可以看看吴老的《Selenium WebDriver实战宝典》,里面有很多小实例,比如操作下拉框、输入框等等。有了这些小实例,你就可以把它们复制到文档,形成一个有目录的代码库。这样即使你不会封装代码,也能在需要的时候找到它,再修改下常用的参数,就能实现一个简单的自动化测试了。
挑选UI自动化用例也有讲究,一般都选择比较稳定、重要的功能作为切入点,要是易于编写就更好了。但一提到项目改版,UI经常首当其冲!可能改动特别大,有时候与其维护自动化用例,还不如重新写。遇到这种大刀阔斧地改变,代码库的优势就很明显了,它形式灵活,可以根据需要随时组装,极大地加快了编写速度。并且随着小代码块的积累,组合代码块的经验也不断增长,当尝试去封装函数,进一步提高代码的复用程度时,一些小的框架设计思想也会随之出现。这样循序渐进,在实践中思考总结,不断优化学习,汲取一些先进的实现思想,慢慢地,UI自动化会做的越来越好。
有朋友说:“手工测试都来不及,哪有时间做自动化?”话虽如此,但抽出时间,做一些局部自动化,提高测试效率,还是很值得的。比如准备测试数据,就要进行大量的重复操作。手工制造上百条数据,可能需要大半天。而使用自动化来实现,在编完代码的那一刻,你就已经解放了!数据源源不断地涌出,只要运行几分钟甚至更短的时间,我们就能完成目标!所以学习UI自动化,总会有用武之地。如果现在还不会,可以慢慢学,千万不要因为现在做的不好,就半途而废了。在工作中,我们可以和同事相互鼓励,一起学习和探讨,甚至带动整个测试团队一起提高,一起进步。希望大家都能使用自动化,为自己争取到更多的福利!
---记光荣之路吴老4月9日清晨分享
作者:Flyleaves
出处:http://www.cnblogs.com/Flyleaves/
参考声源:http://m.ximalaya.com/zhubo/44966139
本文版权归作者、微信公众号光荣之路和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

UI自动化,你值得拥有的更多相关文章
- 【Android测试】UI自动化代码优化之路(临时发布, 随时删除)
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5993622.html 关于UI自动化的抱怨 听过不少人这样 ...
- Appium UI自动化的那些梗
@作者 彭海波 转载请注明出处 前言 由于需求的快速迭代和敏捷测试的要求,在测试过程中引入自动化成为必不可少的手段.作为一个互联网测试团队,我们自然也引入了自动化测试这个环节.在众多的测试框架中,我们 ...
- 洗清UI自动化鸡肋说的不白之冤
人类文明发展的一个重要标识是工具的诞生,当人类开始制作工具来提高生产力时,就逐渐拉开了与其他生物的距离.曾在2013年,<Google如何测试软件>中提到的分层自动化金字塔,轰动业界.而在 ...
- 基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍
1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...
- 移动UI自动化-Page Objects Pattern
移动UI自动化,看起来美好,践行起来却难.做个目光短见的务实主义者.Page Objects Pattern是Selenium官方推崇的方式,最近研究写测试用例最佳实践之Page Objects,同时 ...
- WPF界面设计技巧(9)—使用UI自动化布局
原文:WPF界面设计技巧(9)-使用UI自动化布局 最近一直没时间更新这系列文章,因为我一直在埋头编写我的第一个WPF应用程序:MailMail 今天开始编写附属的加密/解密工具,对UI自动化布局有些 ...
- pywinauto处理UI自动化
之前一个项目的特殊性, 以及一些操作权限上的问题,不能使用现有工具进行UI自动化. 在一些资深tester建议下决定采用Python的pywinauto模块来处理Windows控件的UI操作. 1. ...
- UI自动化测试之Jenkins配置
前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家. 背景: 团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化 ...
- java -ui自动化初体验
本文来讲一下ui自动化的环境搭建,以及最初级的打开网页操作 说起ui自动化,想想大概是前年的时候我开始接触和学习的吧,怎么说呢无论是pc还是app,ios还是android,确实很神奇而且很华丽,但是 ...
随机推荐
- jQuery弹出美女大图片
效果:http://hovertree.com/texiao/jqimg/2/ 效果图: 下载:http://hovertree.com/h/bjaf/jdaqepet.htm HTML代码: < ...
- PostgreSQL保存文件到数据库
1.CREATE TABLE public.t_file ( id INTEGER PRIMARY KEY NOT NULL DEFAULT nextval('t_file_id_seq'::regc ...
- bzoj 1179[Apio2009]Atm (tarjan+spfa)
题目 输入 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口编号.接下来N行,每行一 ...
- javascript 模式(1)——代码复用
程序的开发离不开代码的复用,通过代码复用可以减少开发和维护成本,在谈及代码复用的时候,会首先想到继承性,但继承并不是解决代码复用的唯一方式,还有其他的复用模式比如对象组合.本节将会讲解多种继承模式以实 ...
- html5实现银联海购商品分类列表
银联海购官网请点击 http://haigou.unionpay.com/ 1.实现效果预览展示如下: 2.源码如下 <!DOCTYPE html> <html> <he ...
- web移动端fixed布局和input等表单的爱恨情仇 - 终极BUG,完美解决
[问题]移动端开发,ios下当fixed属性和输入框input(这里不限于input,只要可以调用移动端输入法的都包括,如:textarea.HTML5中contenteditable等),同时存在的 ...
- js实现web网页版台球游戏
js桌球小游戏在线试玩地址:http://keleyi.com/game/13/ 游戏截图: 完整代码,保存到html文件可以试玩: <!DOCTYPE html PUBLIC "-/ ...
- 如何使用jQuery 制作全屏幕背景的嵌入视频
实际效果查看:http://keleyi.com/keleyi/phtml/jqtexiao/28.htm 请使用支持HTML5的浏览器查看本效果. 完整代码如下: <!doctype html ...
- Javascript实现格式化输出
前两天看面试题,其中有一道要实现js的格式化输出,具体给出的是: Javascript实现格式化输出,比如输入999999999,输出为999,999,999 我的实现方式是 function for ...
- 网页中tab标签切换分别用jquery和javascript源码实现
//HTML布局<ul id="tabTitle"> <li class="active">HTML5</li> <l ...