去年春节联欢晚会,为了那张“敬业福”,全家都卯足了劲儿“咻一咻”,连节目都顾不上看了。当时我就想,要是能自动化该多好,不停点击屏幕,屏幕不疼手还疼呢,何况还不好分心,生怕错过了“敬业福”。玩“咻一咻”,是靠不停点击按钮来检查是否得到“敬业福”,而工作中的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自动化,你值得拥有的更多相关文章

  1. 【Android测试】UI自动化代码优化之路(临时发布, 随时删除)

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5993622.html 关于UI自动化的抱怨 听过不少人这样 ...

  2. Appium UI自动化的那些梗

    @作者 彭海波 转载请注明出处 前言 由于需求的快速迭代和敏捷测试的要求,在测试过程中引入自动化成为必不可少的手段.作为一个互联网测试团队,我们自然也引入了自动化测试这个环节.在众多的测试框架中,我们 ...

  3. 洗清UI自动化鸡肋说的不白之冤

    人类文明发展的一个重要标识是工具的诞生,当人类开始制作工具来提高生产力时,就逐渐拉开了与其他生物的距离.曾在2013年,<Google如何测试软件>中提到的分层自动化金字塔,轰动业界.而在 ...

  4. 基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍

    1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...

  5. 移动UI自动化-Page Objects Pattern

    移动UI自动化,看起来美好,践行起来却难.做个目光短见的务实主义者.Page Objects Pattern是Selenium官方推崇的方式,最近研究写测试用例最佳实践之Page Objects,同时 ...

  6. WPF界面设计技巧(9)—使用UI自动化布局

    原文:WPF界面设计技巧(9)-使用UI自动化布局 最近一直没时间更新这系列文章,因为我一直在埋头编写我的第一个WPF应用程序:MailMail 今天开始编写附属的加密/解密工具,对UI自动化布局有些 ...

  7. pywinauto处理UI自动化

    之前一个项目的特殊性, 以及一些操作权限上的问题,不能使用现有工具进行UI自动化. 在一些资深tester建议下决定采用Python的pywinauto模块来处理Windows控件的UI操作. 1. ...

  8. UI自动化测试之Jenkins配置

    前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家. 背景: 团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化 ...

  9. java -ui自动化初体验

    本文来讲一下ui自动化的环境搭建,以及最初级的打开网页操作 说起ui自动化,想想大概是前年的时候我开始接触和学习的吧,怎么说呢无论是pc还是app,ios还是android,确实很神奇而且很华丽,但是 ...

随机推荐

  1. jQuery获取Select选中的Text和Value

    获取Select选中的Text和Value语法解释:$("#select_id").change(function(){//code...});   // 为Select添加事件, ...

  2. 设计模式(二)简单工厂模式(Simple Factory Pattern)

    一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式. 二.简单工厂 ...

  3. Java中随机数的产生方式与原理

    查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以 ...

  4. IDCM项目学习笔记

    项目介绍: IDCM:Internet Data center monitoring 网络数据中心监控平台 IRP:Information Resource planing 信息资源规划 1.设置表中 ...

  5. 【算法】PHP实现冒泡排序和快速排序--防遗忘

    有没有这样的感觉,排序算法虽然简单,但是没看过一次,一会就又忘了,所以有必要 自己使用实际的代码运行实现,才记忆牢固,为此Mark //需求:将数组中元素,从大到小排列$a = array(11, 2 ...

  6. .net开发过程中Bin目录下面几种文件格式的解释

    在.NET开发中,我们经常会在bin目录下面看到这些类型的文件: .pdb..xsd..vshost.exe..exe..exe.config..vshost.exe.config 项目发布的时候,往 ...

  7. 利用Civil 3D API更改曲面的样式

    如果你需要更改曲面的样式,比如更改等高线的颜色等等,在Civil 3D中,你可以通过在toolspace中选中曲面,然后点右键选择“Edit surface style…”然后切换到“Display” ...

  8. jQuery修改class属性和CSS样式

    jQuery修改class属性和CSS样式 class属性修改 类属性即class属性,规定类名. 用类选择器规定样式的时候,需要为元素指定类名,即class属性的值. 注意每个HTML元素只有一个c ...

  9. Xcode8开发iOS10推送通知过程

    iOS10发布后,简书优先开发增加了iOS10的新通知.本文分享整个feature的开发过程遇到的问题. 1.工程配置 Xcode8发生了很大的变化,直接打开原来的工程编译运行,这个时候是获取不到Pu ...

  10. iOS 系统分析(一) 阅读内核准备知识

    ➠更多技术干货请戳:听云博客 0x01 iOS体系架构 1.1 iOS 系统的整体体系架构 用户体验( The User Experience layer ):SpringBoard 同时支持 Spo ...