经过这些年的使用,我认为RFT是一个十分优秀的自动化测试工具。尤其是目前的7.0.1.2版本,已经非常稳定,非常好用了。
与大多数其它自动化测试工具一样,RFT提供了很多基础设施,例如:对象的映射、动作的录制/回放、检查点、数据池、Html或TxT格式的报告等等。这些基础设施确实能够大幅度提升这一工具的上手速度,但是我以为,正是这些基础设施使得RFT的使用者在使用过程中忽略了对这些基础设施背后内容的了解,以至于出现了问题束手无策。其实,RFT是一个开放的自动化测试开发平台,几乎所有他所提供的基础设施都有相应的API暴露给使用者,只要用好这些API,就能够非常轻松的定制出适合自己的自动化测试框架,运行中出现问题也非常容易定位分析。
使用RFT有一段时间的人,应该知道IBM有一个ITCL库,是专门针对RFT的,他封装了很多有用的方法,形成了一套开发框架,能够明显提高开发效率。不过,遗憾的是,这个库非常的老(大部分类生成日期都是05年),如果你使用最新的RFT7.0,由于很多底层API都变化了,这个库有不少部分都不能用了。
如果你仔细阅读过这个库,你就会发现RFT是一个多么灵活的工具,也正因为这一点,很多人都不明白如何能够正确的使用RFT。在我看来,RFT使用的最佳实践就是开发属于自己的测试框架。只有这样才能发挥RFT的真正威力。
利用这个系列,我结合手头的一个Swing界面的项目,介绍一下如何开发自己的测试框架。(Swing项目,运行之间不要忘记Enable Jvm)。
这里,作为测试框架,不应使用对象映射,而应该完全依赖于动态查找。这是因为它严重依赖RFT提供的基础设施,灵活性很差。具体内容随后将逐一介绍。