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

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

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

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

3、Coding模式脚本设计
使用Coding模式设计脚本,可以完全不需要在WEB上进行操作,但是最好的方式是先使用NoCoding的方式设计好测试步骤,再利用AutoRobot提供的java工程下载功能,将转换为java工程的测试下载到本地,导入IDE后再进行开发,因为通过AutoRobot下载的java工程是一个完全可运行的工程,其中很多的代码已经编写完成,可以节省很多的工作量,下图展示了下载后导入到eclipse中的java工程及及测试用例对应的java代码


四、AutoRobot特点
相比AutomanX,AutoRobot具有以下特点
1、关键字驱动方式使得脚本,业务,数据分离,并且可自定义关键字,易于维护,方便扩展
2、页面元素定位方式自动拾取,一边操作被测应用一边进行脚本设计,方便直观
3、使用原生selenium元素查找方式,无需建立pageModel,极大的节省了pageModel建立维护的时间,同时提高了元素定位的效率
4、测试步骤直接转化为java代码工程,支持NoCoding方式和传统Coding方式的脚本设计,在降低自动化脚本设计门槛的同时也为提高编码技术提供支持。