RFT与Spring结合进行自动化测试脚本开发

发表于:2009-02-18来源:作者:点击数: 标签:自动化脚本RFTSpringspring
Spring具有强大的功能:Ioc,可以实现在xml中把一个测试对象注入到另一个测试对象中,再加上可以利用 RFT 的find方法可以把spring的配置文件配置成一张RFT测试对象地图。目前,大部分 自动化脚本 开发 者利用RFT的测试对象地图管理 测试脚本 的测试对象,RFT
 Spring具有强大的功能:Ioc,可以实现在xml中把一个测试对象注入到另一个测试对象中,再加上可以利用RFT的find方法可以把spring的配置文件配置成一张RFT测试对象地图。目前,大部分自动化脚本开发者利用RFT的测试对象地图管理测试脚本的测试对象,RFT的测试对象地图有两种类型:公有测试对象地图和私有测试对象地图。 

  (1)大部分脚本采用的都是私有测试对象地图,如果被测试的程序顶层对象发生变化,这样每个脚本关联的测试对象地图都要进行修改,之所以这样,有一个原因:在RFT中测试对象地图不能够继承(仅仅可以合并),如果两个测试对象地图之间可以进行继承,这样把公用的测试对象放在父测试对象地图中,其他的测试对象地图继承这个公用的测试对象地图(同时继承公有的测试对象),如果被测试程序顶层框架发生变化,仅仅只修改父测试对象地图就可以了,但是目前RFT中不能实现(据我了解)。

  (2)RFT中还有一种类型的测试对象地图是公有的测试对象地图,公有的测试对象地图可以实现公用的测试对象重复使用,如果测试对象是一模一样的,RFT在公有的测试对象地图中只保留此测试对象的一个实例,但是把多个测试对象都插入到一个测试对象地图中,同样又面临着难以管理的困难。

  (3)另外,RFT中的测试对象地图与脚本紧紧的耦合,如果程序即使发生很小的变动,也要更新测试对象地图,修改脚本等等。

  (4)一个spring配置文件可以被另一个spring文件import进来。这样可以把公有的测试对象放在一个spring配置文件中,然后有其他的spring配置文件进行导入,可以实现测试对象地图(spring的配置文件)的继承。另外,在spring的配置文件中,可以注入一个对象的属性,这样可以人工的更改这个测试对象的父框架,另外可以可以注入测试对象的识别属性,这样可以进行人为的进行测试对象识别属性的更改(这样可以更好的应对被测试程序的变化)。

  例如:

  xml 代码
  
<!--从classpath(类路径)中导入base-test-object-map.xml文件 可以使用base-test-object-map.xml文件中定义的bean--> 
<!--导入时候要包含完整的包名--> 
<import resource=\"classpath:pkg/base-test-object-map.xml\"/> 

<!--设置待查找对象的识别属性 格式:propertyName-propertyValue--> 
<property name=\"objectProperties\"> 
<list> 
<!--属性名称和属性精确匹配用=--> 
<!--属性名称和属性用正则表达式匹配用:--> 
<value>.class=Html.FORMvalue> 然后是怎么使用spring配置文件中的测试对象 
<value>.name:.*Formvalue> 
list> 
property> 

<!--设置从什么对象开始查找 注入父测试对象--> 
<!--browserTestObject 引用的是base-test-object-map.xml文件中已经定义的bean--> 
<property name=\"parentTestObject\"> 
<ref bean=\"browserTestObject\"/> 
property> 

  在脚本中引用测试对象通过如下语句:

  

原文转自:http://www.ltesting.net