• <menu id="w2i4a"></menu>
  • logo smartbear TestComplete 系列教程

    文檔首頁(yè)>>smartbear TestComplete 系列教程>>TestComplete使用教程:從.NET程序集調(diào)用函數(shù)(上)

    TestComplete使用教程:從.NET程序集調(diào)用函數(shù)(上)


    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ì)量軟件。

    點(diǎn)擊下載TestComplete正式版

    在TestComplete中,您可以從腳本中調(diào)用駐留在任何.NET程序集中的例程。該程序集可以與.NET Framework或第三方.NET應(yīng)用程序一起提供。


    要求

    • TestComplete Desktop模塊的許可證。
    • 在TestComplete中啟用的.NET類支持功能。

    如果您在訪問.NET類時(shí)遇到問題,請(qǐng)選擇“文件”|“其他”。從TestComplete主菜單安裝擴(kuò)展,然后檢查是否啟用了.NET類支持功能。

    通過dotNET對(duì)象調(diào)用.NET例程

    您可以使用特殊dotNET對(duì)象訪問.NET程序集、類型和類型成員。

    配置項(xiàng)目的CLR橋設(shè)置

    通過dotNET對(duì)象從.NET程序集調(diào)用例程:

    1、使程序集可用于腳本引擎。

    將所需的程序集添加到項(xiàng)目的CLR Bridge列表中。此列表包含.NET程序集,其功能可通過該dotNET對(duì)象供腳本使用:

    • 選擇工具|從TestComplete主菜單中選擇“當(dāng)前項(xiàng)目屬性”。
    • 選擇“CLR橋”類別。
    • 要從全局程序集緩存(GAC)中添加一個(gè)或多個(gè)程序集,請(qǐng)單擊“瀏覽GAC”并選擇所需的程序集。
    • 要從磁盤添加一個(gè)或多個(gè)程序集,請(qǐng)單擊“瀏覽文件”,然后選擇所需的文件。

    注意事項(xiàng):

    • TestComplete始終可以訪問mscorlib.dll程序集(即使它不在CLR Bridge列表中)。您始終可以在測(cè)試中使用mscorlib.dll的類。
    • 從列表中刪除部件后,單擊“重新加載”以解鎖部件的文件。否則,TestComplete將保持程序集鎖定以進(jìn)行讀寫訪問,直到退出TestComplete。

    2、指定托管過程的類型。

    TestComplete將.NET程序集加載到幫助程序托管進(jìn)程tcHostingProcess.exe中。TestComplete可以同時(shí)使用32位和64位程序集,并且托管進(jìn)程的位數(shù)必須與程序集的位數(shù)匹配。否則,TestComplete將無法將程序集加載到托管進(jìn)程。

    程序集托管過程設(shè)置的“首選”體系結(jié)構(gòu)定義了托管過程的位數(shù)??赡艿闹禐椋?/span>

    • 32位
    • 64位
    • 與操作系統(tǒng)相同

    注意事項(xiàng):

    • TestComplete可以創(chuàng)建64位托管進(jìn)程,并且只能在64位操作系統(tǒng)中在其中加載64位程序集。
    • 32位程序集只能在32位托管進(jìn)程中加載,而64位程序集只能在64位托管進(jìn)程中加載。因此,如果程序集列表同時(shí)包含32位和64位程序集,則TestComplete將不會(huì)加載位數(shù)與托管進(jìn)程的位數(shù)不匹配的程序集。
    • 當(dāng)您打開兩個(gè)項(xiàng)目并且其中一個(gè)使用32位托管過程,而另一個(gè)使用64位托管過程時(shí),TestComplete將創(chuàng)建兩個(gè)托管過程實(shí)例:一個(gè)用于32位程序集,另一個(gè)用于64位程序集。
    • TestComplete在項(xiàng)目之間共享托管過程。它不會(huì)為每個(gè)測(cè)試項(xiàng)目創(chuàng)建單獨(dú)的過程。也就是說,具有相同CRL橋位數(shù)的所有項(xiàng)目都將使用相同的托管流程實(shí)例。

    3、指定調(diào)用線程的類型。

    若要指定調(diào)用線程的單元模型,請(qǐng)使用屬于項(xiàng)目屬性的CLR Bridge組的調(diào)用線程設(shè)置的“首選單元”模型??赡艿闹禐椋?/span>

    • 單線程模型
    • 多線程模型
    • 并不重要

    從.NET程序集調(diào)用例程

    添加到CLR Bridge選項(xiàng)的程序集在腳本中可用作該dotNET對(duì)象的子對(duì)象。在特定程序集中定義的類型又是程序集節(jié)點(diǎn)的子對(duì)象。與類型相對(duì)應(yīng)的對(duì)象提供對(duì)在此類型中定義的子類型,靜態(tài)成員和構(gòu)造函數(shù)的訪問。

    “代碼完成”窗口顯示所有可用的程序集,類型和類型成員:


    調(diào)用.NET類的靜態(tài)成員:

    dotNET.namespace.class.subclass.method(parameters)
    
    dotNET.namespace.class.subclass.property(parameters)

    TestComplete自動(dòng)將您作為參數(shù)傳遞的簡(jiǎn)單數(shù)據(jù)類型(例如字符串、整數(shù)和布爾值)轉(zhuǎn)換為.NET兼容值。

    僅當(dāng)對(duì)象類型的參數(shù)是System.Object該類的后代時(shí),才能將其傳遞給CLR Bridge引擎。否則,將發(fā)生類型不匹配錯(cuò)誤。

    使用點(diǎn)將名稱空間和類名稱(和子類名稱)分開。用下劃線字符替換名稱空間名稱中使用的點(diǎn)。

    調(diào)用非靜態(tài)成員:

    首先,通過調(diào)用類構(gòu)造函數(shù)或創(chuàng)建新類實(shí)例的靜態(tài)成員來創(chuàng)建所需類的實(shí)例:

    dotNET.namespace.class.zctor()
    dotNET.namespace.class.zctor_2(parameters)

    注意:通常,類的構(gòu)造函數(shù)名稱為_ctor()。一個(gè)類可以具有多個(gè)構(gòu)造函數(shù)(_ctor()、_ctor2()、_ctor3()等。但是,在VBScript中,標(biāo)識(shí)符不能以下劃線(_)開頭。因此,為使_ctor方法與VBScript兼容,TestComplete用z方法名稱中的字母替換前導(dǎo)下劃線字符。例如,要調(diào)用該_ctor3方法,請(qǐng)使用zctor_3。

    通過應(yīng)用程序域調(diào)用.NET例程

    對(duì)應(yīng)于.NET應(yīng)用程序的所有過程對(duì)象都具有AppDomain方法。該方法提供對(duì)應(yīng)用程序域的訪問。AppDomain方法返回的對(duì)象是.NET AppDomain對(duì)象的包裝器。

    TestComplete dotNET向基礎(chǔ).NET AppDomain對(duì)象添加一個(gè)額外的屬性。該屬性提供對(duì)在應(yīng)用程序中定義的類和在加載到應(yīng)用程序域中的程序集中定義的類的訪問。

    注意:該dotNET屬性還提供對(duì)mscorlib.dll程序集中聲明的所有類的訪問。

    通過AppDomain調(diào)用類成員:

    Sys.Process("MyProcessName").AppDomain("AppDomainName").dotNET.namespace.class.subclass.method(parameters)
    Sys.Process("MyProcessName").AppDomain("AppDomainName").dotNET.namespace.class.subclass.property(parameters)

    調(diào)用非靜態(tài)成員:

    首先使用類構(gòu)造函數(shù)或特殊的靜態(tài)成員創(chuàng)建一個(gè)類實(shí)例(請(qǐng)參見上文):

    Sys.Process("MyProcessName").AppDomain("AppDomainName").dotNET.namespace.class.zctor()
    Sys.Process("MyProcessName").AppDomain("AppDomainName").dotNET.namespace.class.zctor_2.(parameters)

    AppDomain.dotNET與dotNET對(duì)象相比,該屬性的優(yōu)點(diǎn)在于,您可以創(chuàng)建應(yīng)用程序類的實(shí)例,而無需將應(yīng)用程序程序集添加到項(xiàng)目的CLR Bridge列表中。

    如果需要?jiǎng)?chuàng)建.NET對(duì)象以將其作為參數(shù)傳遞給應(yīng)用程序例程,建議您使用應(yīng)用程序域來創(chuàng)建該對(duì)象。這樣,如果您的計(jì)算機(jī)上安裝了多個(gè).NET Framework版本,則可以避免兼容性問題。

    本教程內(nèi)容較多,分為上下兩篇文章,想要了解該教程下半部分,請(qǐng)繼續(xù)關(guān)注我們慧都網(wǎng)~您也可以下載TestComplete試用版免費(fèi)評(píng)估~

    相關(guān)內(nèi)容推薦:

    TestComplete 使用教程>>>


    想要購(gòu)買TestComplete正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊【咨詢?cè)诰€客服】


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();