自動化測試平臺TestComplete使用教程:如何在自動化測試中使用Java類
TestComplete是一款具有人工智能的自動UI測試工具,利用自動化測試工具和人工智能支持的混合對象識別引擎,輕松檢測和測試每個桌面,Web和移動應(yīng)用程序。使用TestComplete,可以提高測試覆蓋率并幫助提供經(jīng)過實戰(zhàn)考驗的高質(zhì)量軟件。本文介紹了如何在自動化測試中使用Java類,本文中的信息僅適用于桌面應(yīng)用程序。您可以從腳本中調(diào)用駐留在任何Java類中的例程。
要求
- TestComplete Desktop模塊的許可證。
- 在TestComplete中啟用的Java類支持插件。該插件已安裝并自動啟用。
要檢查插件是否可用,請選擇File | 從TestComplete主菜單安裝擴(kuò)展,然后在隨后的對話框中搜索插件。如果該插件不存在,請重新安裝TestComplete。
通過JavaClasses對象調(diào)用Java例程
您可以使用該JavaClasses對象訪問Java類及其方法和屬性。設(shè)置如下:
1、指定Java虛擬機(jī)的模塊。
為了使腳本引擎能夠調(diào)用Java類的函數(shù),您應(yīng)該指定將用于承載這些類的Java虛擬機(jī)模塊。為此,請使用“Java Bridge選項”對話框。要調(diào)用該對話框,請選擇Tools | Options。從主菜單中選擇選項,然后選擇引擎 | 顯示在結(jié)果“選項”對話框左側(cè)的樹中的Java Bridge。該對話框包括Java虛擬機(jī)模塊位置選項,該選項使您可以指定Java虛擬機(jī)模塊所需文件的路徑。
2、使該類可用于腳本引擎。
為此,請將所需的類添加到項目的Java Bridge設(shè)置組的列表中。該組包含Java類列表,這些Java類的功能可通過JavaClasses對象和這些類的路徑供腳本使用:
- 選擇工具| 從TestComplete主菜單中選擇“當(dāng)前項目屬性”。
- 選擇“Java Bridge”類別。
-
-
要將新的類名稱添加到Java類列表,請單擊列表右側(cè)的“添加”按鈕,然后指定所需的類名稱。
使用完整的類名,包括程序包名。
-
要指定指定類的路徑,請單擊“類路徑”列表右側(cè)的“添加目錄”或“添加JAR文件”按鈕,然后從隨后的對話框中選擇所需的文件夾或JAR文件。
“類路徑”列表包含目錄和JAR文件。Java類在上面的Java類列表中指定。如果要將新的Java類添加到項目設(shè)置中,請單擊Java類列表右側(cè)的“添加”,指定的類將自動添加到該列表中。
- (可選)要修改或重建添加到TestComplete項目設(shè)置中的JAR文件,請單擊“Java類”列表右側(cè)的“卸載類”。此按鈕將清除Java類列表。事實是,TestComplete會阻止對Java Bridge項目設(shè)置中指定的JAR文件的訪問,直到關(guān)閉包含相應(yīng)項目的項目套件為止。因此,如果您在TestComplete中打開相應(yīng)的項目時嘗試刪除或重建此文件,您將得到“訪問被拒絕”提示。要訪問指定的JAR文件,可以單擊“卸載類”或關(guān)閉項目套件。
添加到Java Bridge選項中的類在腳本中可用作JavaClasses對象的子對象。特定類中定義的類型又是類節(jié)點的子對象。與類型相對應(yīng)的對象提供對在此類型中定義的子類型,靜態(tài)成員和構(gòu)造函數(shù)的訪問。所有可用的類、類型和類型成員都顯示在“代碼完成”窗口中:
要從腳本中調(diào)用特定方法,請使用以下語法:
JavaClasses.package.class.subclass.method(parameters)
作為參數(shù)傳遞的簡單數(shù)據(jù)類型(例如字符串、整數(shù)、布爾值)將自動轉(zhuǎn)換為適當(dāng)?shù)腏ava類的實例。僅當(dāng)對象類型的參數(shù)是java.lang.Object的后代時才可以將其傳遞給Java Bridge。否則,將發(fā)生類型不匹配錯誤。
如您所見,包名和類名(以及子類名)必須由點分隔。另外,請注意,包名稱中使用的點必須用下劃線字符替換。
上面的語法使您只能調(diào)用Java類的靜態(tài)成員。為了在腳本中使用非靜態(tài)方法和屬性,您應(yīng)該首先通過調(diào)用類構(gòu)造函數(shù)或創(chuàng)建新類實例的靜態(tài)成員來創(chuàng)建所需類的實例。
注意:通常,Java構(gòu)造函數(shù)的名稱與其所屬類的名稱相同。一個類可以具有任意數(shù)量的構(gòu)造函數(shù),并且它們的名稱相同。為了避免命名沖突,TestComplete將這些方法的名稱更改為newInstance。因此,類構(gòu)造函數(shù)將具有以下名稱:newInstance, newInstance_2, newInstance_3,等等。
您可以以與其他對象相同的方式處理Java類的方法和屬性返回的對象。某些值類型實例(例如數(shù)字和布爾值)是OLE兼容的,可以直接在腳本中使用。為了使字符串、小數(shù)、日期時間對象、枚舉值和數(shù)組OLE-兼容,TestComplete增加了一個特殊的OleValue屬性給他們。要使用結(jié)構(gòu)和引用類型(字符串和數(shù)組除外),請使用它們的內(nèi)部屬性和成員。
通過JavaRuntime對象調(diào)用Java例程
對應(yīng)于Java應(yīng)用程序的所有進(jìn)程對象都具有JavaRuntime方法,該方法提供對Windows進(jìn)程中存在的Java虛擬機(jī)的訪問。JavaRuntime方法返回的對象是所需Java虛擬機(jī)的java.lang.Runtime類的實例。該對象包含與java.lang.Runtime相同的屬性和方法,以及TestComplete提供的特定屬性。對象的JavaClasses屬性提供對Java應(yīng)用程序中定義的包和類的訪問。
JavaRuntime.JavaClasses屬性與JavaClasses對象相似,并且用于通過調(diào)用類成員JavaRuntime的語法類與使用JavaClasses對象時使用的語法相似:
Sys.Process("MyJavaApp").JavaRuntime.JavaClasses.package.class.subclass.method(parameters)
同樣,要調(diào)用非靜態(tài)方法或?qū)傩裕鷳?yīng)該首先使用類構(gòu)造函數(shù)或特殊的靜態(tài)成員創(chuàng)建類實例。
JavaRuntime.JavaClasses與JavaClasses對象相比,該屬性的優(yōu)點在于,它使您可以創(chuàng)建應(yīng)用程序類的實例,而不必將這些類添加到項目的Java Bridge選項中。
處理Java應(yīng)用程序中發(fā)生的異常
TestComplete允許捕獲和處理Java應(yīng)用程序代碼中發(fā)生的異常。您可以使用標(biāo)準(zhǔn)腳本語句來捕獲這些異常,例如try…catch和其他。
TestComplete自動捕獲在測試Java應(yīng)用程序時發(fā)生的異常,并以以下格式返回其描述:
Exception Type: Exception Cause
例如,當(dāng)被測Java應(yīng)用程序檢測到零-時,將發(fā)生以下異常java.lang.ArithmeticException: / by zero。
局限性
如果使用-verbose或-verbose:class命令行參數(shù)啟動了測試的應(yīng)用程序,則TestComplete無法訪問Java對象的內(nèi)部方法和屬性。因此,如果您嘗試訪問Java對象的JavaVMCount或JavaVMVersion屬性,并且使用這些命令行參數(shù)之一啟動了經(jīng)過測試的應(yīng)用程序,則會發(fā)生錯誤。
本教程人內(nèi)容就是這樣了,希望對您有所幫助~您可以下載TestComplete試用版嘗試一下,可以試一下文章使用的方法哦~
相關(guān)內(nèi)容推薦: