目前主流的商业化的功能测试自动化工具主要是IBM的rational系列的RFT和HP Mercury公司的Quick Test Professional。不可否认的是这两个自动化工具在对象的辨识以及自动化脚本编写上的确拥有非常明显的优势,我近也是在认真学习QTP的相关内容。。但是迫于两个商业软件的高额的使用成本,我们仍然在追求开源的的自动化功能测试解决方案。
目前我所发现的两个开源自动化测试工具有希望成为各大供公司测试经理办公桌上的另一个解决方案。Abbot和Marathon。首先这两个工具主要是用来支持基于Java的C/S结构的系统。主要是支持主流的几个GUI框架,我测试过Swing和AWT,都是可以很不错的支持的。对于微软的支持没有尝试过,所以也不能在这里随便下定论。
Abbot提供了一组API可以允许开发抓取应用程序窗口中的各个组件,然后模拟用户的操作。Abbot的1。2的版本中提供了一个录制脚本的功能,我们可以利用录制工具在配置好相关应用的Jar包的路口类和函数后,启动应用并录制相关脚本。录制的脚本内容是可以导出为xml的格式的文件。也可以在脚本中添加断言来给自动化脚本添加一些业务逻辑的判断和控制。但是由于录制的脚本是XML格式的文件,在扩展性上面不是很好,无法做更多脚本逻辑的控制。对了,Abbot提供的API是基于Java的,在我们目前使用的Abbot,我们更多是用来做组件的功能测试,也可以理解为是一个对于组件的单元测试框架,可以继承到Junit或者是Fitnesse框架中。
Marathon是一个基于Jython的开源自动化GUI测试框架。Marathon的录制功能比较强大,而且操作界面比较直观的。方便用户上手。 Mathon录制的脚本是基于Jython的,由于Jython是运行在JVM上面的Python,语法也和Java比较接近,对于有java经验的工程师而言,非常容易上手。Marathon提供的fixture和module功能,可以让我们把自动化脚本模块化,提高了脚本的复用性。
比较而言,Abbot更加适用于GUI的组件测试,而Marathon则可以适合功能性的自动化测试。不过目前还没有一个成功使用Marathon实施自动化测试的案例,当然如果有的话也请大家要分享哦。大家多拍砖。