使用RFT的getProperty和invoke方法测试定制的Java控件

简介:定制的Java 控件(或者没有包含于标准 Java 库中的控件)正在挑战 GUI 自动化测试过程。 本文解释了如何通过 IBM Rational Functional Tester 所提供的两种方法使用这些控件类,用以创建自 动化的处理过程: getProperty 和 invoke

IBM® Rational® Functional Tester 提供了标准接口,便于操作标准 Java™ 控件。例如,在 Rational TextGuiTestObject 接口中,您可以很方便的使用getText 和 setText 方法获取/设置Swing文本框。另 一方面,任何GUI自动化工具都很难实现非标准的或定制控件的自动化,包括 Rational Functional Tester。定制控件 并不存在于标准部件之中(例如,AWT 或 Swing),但它们是应用程序开发者不断积 累所创造的。Rational Functional Tester 开发者并不知道这些控件,不能预料到您所需要的方法,因 而他们不可能提供包含所有方法的接口。为了测试这些接口,您需要直接从控件本身获取控件如何工作的 信息。幸运的是, Rational Functional Tester为我们提供了一条途径,那就是使用 getProperty 和 invoke方法。

Java applet 就是一个定制控件的实例,如图 1所示。这是 Lotus Notes中包含的 Editor applet 。

图 1. Lotus Notes Editor applet

这个 applet 显示了 用户输入富文本(可设置文本为粗体、斜体、文本颜色等等)的区域。用户通过使用顶部 applet 的按钮 和列表框控制文本的显示。这些按钮并不是标准控件。就是说,它们不属于 Swing 或 AWT 按钮,而属于 Lotus的开发者。它们的包和类名,com.lotus.app.MultiImageButton,表现出了这一点。很明显,这个 包中的类不是一种标准控件,因此 Rational Functional Tester 不能提供包含您需要的一切接口。

但是,即使这些按钮不是标准控件,Rational Functional Tester 仍然可以使用最普遍的类来识 别它们,即 GuiTestObject。但在大部分情况下,这样做还不能满足要求。问题在于,对比直接提供的 GuiTestObject 类,您需要更多有关控件的信息,更多操作它们的方法。例如,虽然 GuiTestObject提供 了点击按钮的方法,但是它没有提供获取按钮名称(例如,用来区别粗体按钮和斜体按钮)的方法 getText ,而且它没有提供 isSelected 方法以确定是否某个特殊按钮已被选择。但这些正是彻底测试 applet 所必需的信息。因此,您不得不使用 Rational Functional Tester 的 getProperty 和 invoke 方法直接从控件中获取信息。

你可能感兴趣的:(java,swing,测试,applet,Lotus,程序开发)