Robot 的Java代理,你必須熟悉Java內部的反省,Java外部接口,和被用于開發應用程序或者applet的類庫。 為了證明如何寫" name="description" />
如何寫一個Java代理 為了開發一個使用于Rational javascript:;" onClick="javascript:tagshow(event, 'Robot');" target="_self">Robot的Java代理,你必須熟悉Java內部的反省,Java外部接口,和被用于開發應用程序或者applet的類庫。 為了證明如何寫一個嗲里,讓我們使用我們前面討論過的com.Borland.jbcl.control. TreeControl開發一個程序。 一個Rational Robot的Java 代理只不過是一個Java類,它為被測試的SQABasic對象提供了一個特殊指定的接口。就像先前提及的,TreeControl映射到SQABasic的JavaTree對象。IRbtTree是JavaTree的一個接口,它擴展于IRbtBase。這意味著TreeControl代理必須執行IRbtTree的指定函數(包括IrbtBase的指定函數)。 事實上,Rational提供的一些代理服務于基本類代理開發。TreeControl作為javax.swing.JComponent和java.awt.Component的父類。AwtBaseProxy或者JfcBaseProxy(這兩個都被Rational支持)能夠服務于基本類代理的開發。在本文中,能實現IRbtBase的AwtBaseProxy用于基礎類服務?,F在還需要實現的是指定在IRbtTree里的剩余的功能(或函數)。 代理類的編寫開始時,需要列出屬于代理的包和寫代理需要的包: package beech; import Java.lang.Object; import Java.awt.Point; import rational.robot.openapi.*; 接下來是類的主體: public class JBCLTreeProxy extends AwtBaseProxy implements IRbtTree { public JBCLTreeProxy(){} ... } 假如構造類被使用,那么公用的關鍵字將被使用。否則,Robot將無法找到代理或者是在試圖調用代理時返回一個錯誤的信息。 Java proxy is unavailable: Proxy [ 完成的代碼見附錄C。源代碼展示的代理僅僅調用了被測是組件中的某個方法。舉個例子,接口函數getNodeImage被用于區的每一個TreeControl對象的節點內容。Robot經過getNodeImage節點上的每一個對象,使用TreeControl的get函數的方法。Robot經過的getNodeImage 各節點上的內容被get函數返回。 GetNodeImage的執行被顯示在下面:
編譯源程序 為了編譯源程序,環境變量類路徑的設定需要修改。修改方法見最后一部分的描述,如下:
Start->Program->Rational SuiteTestStudio->Rational Test-> Java Enabler這步驟為Rational Robot和Java 過程的通訊而準備的。 圖3:運行Rational Test Enabler for Java 點擊安裝程序的Complete去搜索所有可以安裝的Java環境。一臺機器通常有多個Java環境。 圖4:選擇Java Environments for Testing Runs
從展示的Java環境列表中,選擇你需要運行的AUT(見圖4)。你只要選擇需要支持的JVM,你所選擇的所有環境將會用于測試Java應用程序和applets。 點擊Next完成安裝,安裝時將在sqarobot.jar文件中,加上classpath環境變量。
javac JBCLTreeProxy.java -d 這將在當前路徑下創建一個分支路徑,在那里放置JBCLTreeProxy.class。
jar fcv beechProxy.jar beech 這命令將壓縮JBCLTreeProxy.class為beechProxy.jar. 發布Java代理 當類文件被壓縮成jar格式,該代理已經做好了發布的準備。發布的過程如下:
確保Java的額外功能被選擇(見圖5) 圖5:管理額外環境變量列表
Tools -> General Options from Robot, 然后點擊Java Class Mapping Tab.在Java object type選項中選擇JavaTree,就像圖6顯示的。 圖6: Java Class Mapping 對話框 點擊Add確定TreeControlclass 和他的代理類(見圖7) 圖7: Component Class and Proxy 對話框 點擊OK. JavaClassMap.dat中的JavaTreesection將顯示為: [JavaTree] com.Borland.jbcl.control.TreeControl=beech.JBCLTreeProxy
Start->Program->Rational SuiteTestStudio->Rational Test-> Java Enabler 圖8: Rational Test Enabler for Java
點擊Special Java Proxies按鈕(圖8)去選擇代理文件位于的項目。為了搜索和運用已經安裝的Java環境,我們需要點擊Complete或者Quick去安裝它們。
結論 使用Java代理,Rational Robot能夠支持所有的Java類庫,只要應用程序是使用可接受的JVM進行開發的。我們已經看到當需要第三方代理,Rational Robot是如何使用和如何編寫Java代理去擴展它的能力。你能夠使用附錄A的應用程序(或者附錄B中將其視為Applet運行的HTML頁面)去測試你開發的Java代理。 附錄 附錄A:BCLControls應用程序的源程序 附錄B:將JBCLControls作為Apple運行的HTML頁面 附錄C:BCLTreeProxy的源程序 版權聲明:51testing軟件測試網及相關內容提供者擁有ltesting.net內容的全部版權,未經明確的書面許可,任何人或單位不得對本網站內容復制、轉載或進行鏡像。51testing軟件測試網歡迎與業內同行進行有益的合作和交流,如果有任何有關內容方面的合作事宜,請聯系我們。 |
原文轉自:http://www.anti-gravitydesign.com