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,确实很神奇而且很华丽,但是 ...
随机推荐
- securityPolicy与安全策略等级配置
securityPolicy配置节是定义一个安全策略文件与其信任级别名称之间的映射的集合.配置如下所示 其中name是指定映射到策略文件的命名的安全级别,一般的值有Full,Hight,Medium, ...
- EC笔记:第三部分:13、以对象管理资源
C++相比Java等含有gc的语言来说,内存管理方面(也包括资源管理)比较令人头疼.一些初级程序员,甚至是一些经验丰富的老程序员,也会经常在资源管理上犯错.这时候就需要一个能够自动管理资源的东西(gc ...
- 转载:《TypeScript 中文入门教程》 4、类
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但这对 ...
- laravel5 数据库配置(MySQL)
laravel5 数据库配置(MySQL) 首先有一个安装完成可以运行的laravel框架. 配置database.php 进入laravel根目录. 在config目录下找到database.php ...
- Java02
一.IDE的概念.eclipse的介绍.安装.使用 (用eclipse写HelloWorld例子) 1.什么是IDE(Integrated Development Environment)? ...
- java web学习总结(十四) -------------------JSP原理
一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...
- 十一个行为模式之备忘录模式(Memento Pattern)
定义: 在不破坏原有封装的情况下,捕获一个对象的内部状态,并在对象之外保存.当对象出错或者无效是,可以根据该备忘录进行恢复. 结构图: Originator:原发类,被记录的对象,包含若干内部状态.一 ...
- UML常用图
序列图 活动图
- jQuery实现页面内锚点平滑跳转
平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以 ...
- ASP.NET MVC Autofac自动注入
依赖注入容器有很多插件,我用过Unity和Autofac,这两个插件给我最明显的感觉就是Autofac很快,非常的快,毕竟是第三方开发的,而Unity相对而言性能比较稳定 下面附上Autofac自动注 ...