一、自动化测试发展

自动化技术在不断的发展,从简单的录制回放到数据驱动到关键字驱动,再到模型驱动,每一次自动化技术的发展都会带来自动化测试工具的革新,而每一次新的测试工具的诞生都会带来新的突破,新工具的出现带来了新的体验但是也不可避免的有一些缺陷,正是因为此,才推动测试框架不断的完善,强大,下图展示了基于GUI的功能自动化测试技术的发展:


 

二、淘宝自动化测试框架发展

      随着自动化技术的发展,淘宝自动化测试框架也在不断的完善,从TcommonAutoman再到现在的AutomanX,测试框架的完善带来的是自动化效率的提升,相对来说,AutomanX已经相当的完善了,但是AutomanX是一个集成化,模块化的的测试平台,需要测试人员具备一定的编码能力,并且对mvnjunitspring等技术有一定的了解才可以进行测试脚本的编写,同时,AutomanX是基于pageModel的,在进行脚本编写时,需要先建立pageModel,增加了脚本编写的工作量,基于此,我们又开发了新的自动化测试框架AutoRobot,来完善AutomanX的这些问题。下图展示了淘宝自动化测试框架的发展概览:


 

三、AutoRobot介绍

1.功能介绍

AutoRobot是关键字驱动的测试框架,核心基于Selenium2.0AutoRobot针对不同能力的测试人员提供两种脚本设计方式,一种为NoCoding方式,通过选择页面元素及对应操作来完成测试步骤的设计,另外一种为传统的Coding方式,通过编写代码完成测试脚本设计,无论使用哪种方式,AutoRobot都支持自定义的关键字设计,除了框架提供的统一的关键字定义外,不同业务可以根据业务需要设计适合自己的关键字,下图展示了AutoRobot的主要功能:


  2.整体架构

   AutoRobot使用Selenium进行元素交互,使用Freemaker进行操作步骤和测试代码转换,使用junit进行测试用例组织,使用chrome插件进行页面元素自动拾取,在这些基础之上AutoRobot支持各种关键字的扩展,整体的架构如下图所示:



 3.NoCoding脚本设计

AutoRobot使用Chrome插件进行元素拾取,使用关键字定义进行元素操作,设计好的测试步骤可以转化为自然语言描述的操作步骤,可以转化为java测试方法,还可以转化为XML语言描述的测试步骤,设计好的测试步骤如下图:

   

      4.Coding模式脚本设计

    使用Coding模式设计脚本,可以完全不需要在WEB上进行操作,但是最好的方式是先使用NoCoding的方式设计好测试步骤,再利用AutoRobot提供的java工程下载功能,将转换为java工程的测试下载到本地,如下图

      下载完成后解压缩,使用IDE导入工程,可以看到一个完整的测试工程,如下图所示


     通过AutoRobot下载的java工程是一个完全可运行的工程,如果对自动转换的脚本需要进行修改完善,可直接再导入后的工程中进行修改编译,下图展示的是AutoRobot自动转换的脚本 


四、AutoRobot特点

相比AutomanXAutoRobot具有以下特点

1.基于关键字驱动方式item.operation(value)原理,使得脚本、业务、数据分离,有效提升了系统的可扩展性

2.通过Chrome插件的方式进行页面元素定位自动拾取,降低页面元素拾取与定位的难度

3.使用原生selenium元素查找方式,弱化pageModel概念,无需手动建立pageModel,极大的节省了pageModel建立维护的时间,同时提高了元素定位的效率

4.支持NoCoding与Coding并存的用例开发模式,极大提升了用例编写的灵活度和降低用例开发的难度

5.测试用例xml化,自然语言描述化,便于用例手动重现

6.整个系统采用Web系统 & Chrome插件 & 核心框架,秉承高内聚、低耦合理念,极大的提升了代码的可维护性和可扩展性

7.More and more in the future...


试用地址:http://daily.kelude.taobao.net/pf/(只支持阿里内部使用)

有任何意见或者建议,可以直接留言,谢谢


五、如何部署

            1. Chrome插件(Noselector.crx)安装

地址: \\10.232.23.62\软件备份\PC自动化框架组\5_Software   或者通过云盘下载:http://yunpan.alibaba-inc.com/group/106778

打开Chrome浏览器的扩展chrome://extensions/拖动Noselector.crx到扩展页面即可安装,安装成功后可看到如下图标

       

   2. 操作步骤编辑

       元素步骤页面,待测网址中输入测试页面,进入待测页面后,先点击元素定位器输入框,再点击Chrome插件图标开启插件,然后点击元素,则元素定位方式会自动填入元素定位器输入框中,如下图所示



AutoRobot元素定位器展示方式使用Jquery的语法,如果不喜欢抓取的方式,可以直接再元素定位器中进行编辑。

如果要操作浏览器或者是自定义的控件类型,则无需编辑元素名称和定位器,在元素类型中选择broswer,然后在操作中选择对应的方法即可,比如登录操作被封装在了broswer中,如果需要进行登录操作,在类型中选择broswer,在操作中选择login,在参数值中输入用户名和密码,使用逗号隔开,输入完成后保存即可

3. 下载java工程

通过AutoRobot写自动化用例一般不需要测试人员创建测试工程,但是有时为了调试脚本,增强脚本的健壮性,可扩展性,或者为了增强自身的编码能力,也可以先使用AutoRobot编写好测试用例,然后下载测试工程,使用传统coding方式进行脚本编写。

选择某个测试项目,点击“下载Java工程”,即可下载该项目对应的测试工程,如下图所示



下载Java工程会将测试项目工程压缩后下载到本地,解压缩后,使用eclipse的导入工程,将测试工程导入eclipse,导入成功后,则可以在eclipse中进行测试脚本的编写。