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 頁面內。
文章來源于領測軟件測試網 http://www.kjueaiud.com/