Rational Functional Tester实现测试
2008-02-26 10:59:02 来源:51测试网 作者: 点击:
Rational Functional Tester (RFT) 是一款支持 Java 和具备强大对象识别机制的功能测试工具。
rty方法来获得主要的属性。在众多的属性值当中,"bounds", "class", "text"是最主要使用到的。"bounds"参数可以返回当前被测试控件的坐标范围,"class"参数返回被测试对象的eclipse类名称。"text"参数返回被测试对象现实出来的文字。
有了如上的思路和RFT特性的支持,在后面的篇幅里面,我们着手分四个步骤来实现这样的动态校验点测试。
步骤一: 配置数据文件
首先测试人员需要建立一个标准的RFT测试工程。如图 5 所示,我们建立工程CatProject。
图 5: CatProject工程的目录

然后建立控件定义配置文件\testcases\myvpcase\objects.properties。
NAME=Name:,Right,Text
LABEL=Label:,Right,Text
TYPE=Type:,Right,Text
MANAGEMENT=Management:,Right,Text
EXTENTSIZE=Extent size:,Right,Text
PREFETCHSIZE=Prefetch size:,Right,Text
OVERHEAD=Overhead:,Right,Text
TRANSFERRATE=Transfer rate:,Right,Text
该文件中,每一行都配置了一个被测试的控件。等号左边是这个对象的唯一标识符,该标识符通常可以根据对象的某些特征来命名,比如说控件的文字或者它的前置文本。等号右边是该对象的特征描述,是用来动态识别这个对象的关键。这个特征描述分成三个部分,之间使用逗号进行分隔。这三个部分分别是:相邻的特征标签的文字,被测试控件和特征标签之间的相对位置关系,该被测试控件的类型。比如第5个控件,它左边的标签是EXTENTSIZE:,而这个控件是文本类型的控件,所以可以配置成为EXTENTSIZE=Extent size:,Right,Text。
在完成控件配置文件之后,就可以着手配置预期值。如下所示。(\testcases\myvpcase\ids.properties)
NAME=DB_LARGE1
LABEL=
TYPE=LARGE
MANAGEMENT=DATABASE_MANAGED
EXTENTSIZE=32
PREFETCHSIZE=32
OVERHEAD=12.67
TRANSFERRATE=0.18
在上面的配置文件中,每行都是一个预期值的配置。等号左边是objects.properties中配置的被测试控件的标识符,等号右边是它应当等于的值。通过这种方式,测试人员就可以很容易的配置每个被测试控件的预期值。
步骤二:创建辅助类
在完成配置文件的定义之后,就可以着手进行代码的编制。首先需要定义常数类,存储几个会经常使用到的字符串。这是一个纯Java的接口文件(\library\vputil\IConstant.java)。
package library.vputil;
public interface IConstant {
public static String IDSFILE="ids.properties"; //用来配置预期值文件的名称
public static String OBJECTSFIlE="objects.properties"; //用来配置控件定义文件的名称
public static String LABELCLASS="org.eclipse.swt.custom.CLabel";//标签控件的类名称
public static String LABELCLASS2="org.eclipse.swt.widgets.Label";//标签控件的类名称2
public static String TEXTCLASS="org.eclipse.swt.widgets.Text"; //文本控件的类名称
}
然后,创建一个用来描述对象的对象定义类。它也是一个纯Java的类文件。如\library\vputil\ObjDef.java所示。
package library.vputil;
public class ObjDef{
private String objId; //该控件的唯一标识字符串
private String label; //控件附近的标志性标签文字,比如"Name:"
private String pos; //控件和标签的相对位置关系,比如"Right"和"Left"
private String type; //控件的类型,比如"text"或者"com