Functional Tester测试定制的Java 控件 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 。
这个 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 方法直接从控件中获取信息。
本文为您展示了如何使用 Rational Functional Tester 测试定制的Java控件。本文中我们主要使用 Lotus 创建的 Editor applet 实例,但您可以将此原则应用于任何定制的 Java 类中,无论其是否嵌入 Web 页面内。
文章来源于领测软件测试网 https://www.ltesting.net/