RFT的动态特性
动态校验点测试的思想能够被实现的前提是RFT能够提供强有力的支持。而RFT本身一些优秀的特性恰恰证明了这种动态校验的可行性,下面我们通过两方面来展示RFT的相关特性。
首先这种可行性是因为RFT的对象识别体系,它提供了把所有被测试控件映射成为一个树形结构的能力,这使得通过程序来动态遍历所有被测试控件成为可能。因此,测试人员可以不用静态地一个个的抓取和维护被测试控件,而采用配置加遍历的方法来进行动态查找,这就大大减少了代码的耦合性。
在RFT对象识别体系中,每个被测试的对象都被映射成为TestObject的子类实现。这些TestObject通过树形结构组织在一起,用以映射被测试对象中物件相互包含的关系。一个典型的例子如图 4 所示。在这个例子中,整个eclipse的Properties View都映射成为一个TestObject的树形结构。
图 4: 对象映射机制
其次这种可行性来自于RFT的TestObject类提供的丰富的对象属性。正是因为有这些属性的存在,测试人员才可能在动态遍历寻找目标时,精确地判断相对位置关系和文字特征。RFT中每个TestObject对象都可以使用getProperties和getProperty方法来获得主要的属性。在众多的属性值当中,"bounds", "class", "text"是最主要使用到的。"bounds"参数可以返回当前被测试控件的坐标范围,"class"参数返回被测试对象的eclipse类名称。"text"参数返回被测试对象现实出来的文字。
有了如上的思路和RFT特性的支持,在后面的篇幅里面,我们着手分四个步骤来实现这样的动态校验点测试。
步骤一: 配置数据文件
首先测试人员需要建立一个标准的RFT测试工程。如图 5 所示,我们建立工程CatProject。
图 5: CatProject工程的目录