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