用Robot寫Java代理
發表于:2011-12-13來源:未知作者:娃娃點擊數:
標簽:robot
Rational Robot是通過錄制用戶操作進行功能,性能和兼容性測試的自動化測試工具。通過回放錄制腳本進行功能和可靠性測試。本文主要介紹Rational Robot針對java程序和applets如何進行功能測試。 Rational Robot當前版本支持用以下類庫開發的Java程序和app
Rational Robot是通過錄制用戶操作進行功能,
性能和
兼容性測試的
自動化測試工具。通過回放錄制腳本進行功能和可靠性
測試。本文主要介紹Rational Robot針對
java程序和applets如何進行
功能測試。
Rational Robot當前版本支持用以下類庫
開發的
Java程序和applet程序:
Java Foundation Classes(JFCs)
Sun的Swing 和 Abstract Windowing Toolkit(AWT)
Sym
antec的Visual Café
Sitraka Software的JClass庫
還有一些Java類超出了Rational Robot支持的范圍,但是需要注意的是這些超出Robot支持的Java類中的一些類繼承自Rational Robot支持的類。
測試人員可以通過編寫Java代理來擴展Rational Robot識別對象的能力。使用Java擴展API,需要注意的是,這些代理只能夠測試在SUN的JVM上運行的類,并可以運行在Netscape和IE上的程序和Applet。
本文將討論,Rational Robot怎樣使用Java代理并且當需要第三方Java代理的時候怎么做。示范如何
開發Java代理,怎樣用Java擴展Api支持Rational軟件。
Rational Robot怎樣用Java代理
執行功能,性能或者可靠性測試的時候,Rational Robot通過AUT監控用戶交互進而生成Rational的SQABasic腳本,不必管開發程序的語言是什么,當錄制的腳本回放,他通過AUT再現用戶的操作行為。測試Java程序和Applets的時候,SQABasic有一套定義好的圖形界面(GUI)對象.
表格一:展示了一組SQABasic 測試Java程序和Applect的GUI對象
JavaMenu |
JavaMenuItem |
CheckBox |
RadioButton |
ComboBox |
ComboListBox |
Label |
ListBox |
ScrollBar |
EditBox |
TrackBar |
TabControl |
ProgressBar |
JavaPanel |
JavaWindow |
JavaTree |
JavaSplitPanel |
JavaSplitter |
JavaMenuBar |
JavaObject |
JavaCheckBoxMenuItem |
PushButton |
Toolbar |
JavaListView |
JavaMenuSeparator |
JavaTable |
JavaCanvas |
|
JavaPopupMenu |
JavaTableHeader |
|
|
這些SQABasic GUI對象表現為他們的屬性和功能表現。這些功能定義允許Robot模擬用戶操作和對象進行交互。Robot知道怎樣處理SQABasic GUI對象。測試Java和applets,Java對象必須映射為SQABasic GUI對象。比如JFC 中的Jbutton組件需要映射為SQABasic 對象的PushButton。
通過反射或者說反映,Rational Robot可以動態地決定加載到JVM中Java GUI組建的類、功能和屬性。它使用包含在JavaClassMap.dat中的信息確定什么樣的SQABasic對象可以映射到相關類,也可以確定使用什么樣的代理與Java組建相互交互。
Rational提供的JavaClass
模板被放在項目目錄下\TestDatastoe\DefaultTestScriptDataStore\TMS_scripts\dat JavaClassMap.dat信息格式如下:
[SQABasic Object]
Java GUI component=proxy
圖一描述的過程展現了Rational Robot是如何使用代理與Java應用程序交互的。對于Rational 所支持的Java代理類,包含在JavaClassMap.dat 里的信息在Robot內部有效。

此過程是如下工作的
1、 在錄制的時候,Rational Robot偵查用戶和AUT之間的交互;通過反省,他知道用戶與什么樣的控間的類交互。
2、 Rational Robot使用JavaClassMap.dat文件或者使用Robot內部可接受的相似信息,去決定這個類映射到的SQABasic GUI對象和與Java組件相互影響的代理。
3、 然后Rational Robot使用代理學習到關于Java組件的必要信息,生成適當的SQABasic代碼。
4、 為了回放已錄制的代碼,SQABasic代碼被轉化為Robot可調用的適當的函數或者代理類的函數列表。這些列表一次觸發被測組件中的適當的函數。
舉個例子,模擬一個用戶點擊一個Java GUI組件(比如:Jbutton),Rational Robot生成如下SQABasic命令:
PushButton Click, recMethod
這里的recMethod是AUT一個唯一可識別的按鈕名稱。同樣的命令別用于所有的按鈕,不管它使用什么語言開發的。
什么時候需要第三方得Java代理
如果被開發的應用程序使用任何明確的可支持標準Java GUI組件的類庫,那么Rational支持的代理對于與Robot交互的應用程序就足夠了。本文中所說的標準Java GUI組件是指類中可被引用的組件。Jbutton, Jtree和Jplanel都是JFCs中標準的Java GUI組件。
原文轉自:http://www.kjueaiud.com