發(fā)現(xiàn)直接在resource中加載含有calss的vbs文件,
QTP無法識(shí)別類,導(dǎo)致腳本中無法new類對(duì)象。
解決辦法有四種:
1、直接在action腳本中定義類,然后action中任何地方都可以實(shí)例化類
2、用executefile引入類定義文件,然后action中任何地方都可以實(shí)例化類
3、在function lib中定義類,并實(shí)例化類,然后再action中直接使用類實(shí)例
4、在function lib中定義類,并定義一個(gè)實(shí)例化類的函數(shù),然后再action中調(diào)用該函數(shù)對(duì)類進(jìn)行實(shí)例化
補(bǔ)充:第四種實(shí)現(xiàn)方法如下:
把vbs文件加載到Resources中后,我用以下方法繞過QTP不識(shí)別導(dǎo)入的vbs文件中的類的問題。
在放置class(類)的vbs文件中,放置以下函數(shù):
------------------------------------------------------------------------------------------------------------------ ' '* 功能:由于QTP不識(shí)別導(dǎo)入的VBS文件中的類,因此定義此函數(shù)來返回相應(yīng)的對(duì)象 '* 輸入?yún)?shù):className :要建立對(duì)象的類名 '* 返回值:返回類對(duì)象 '* 編寫人: chenyb '* 編寫日期:2008-10-16 '* 其他說明:以下只是方法,根據(jù)需要再擴(kuò)展 ' Public Function newClass(className) Dim strSentence,obj strSentence = strSentence & "set obj = New " & className '創(chuàng)建對(duì)象 Execute strSentence '執(zhí)行字符串語句 Set newClass = obj '返回對(duì)象 End Function |
參考QTP下vbs偽類構(gòu)造器的設(shè)計(jì):
有一段時(shí)間沒上博客了,不過博客還是不能拖呢,每每在我快要放棄的時(shí)候總會(huì)有許多網(wǎng)友在告訴我該更新了,我們等著你的講座,雖然講座寫到后來已經(jīng)有些疲倦,但有了你們的支持,我還會(huì)一直繼續(xù),講座還會(huì)一直繼續(xù)。
進(jìn)入正題,今天要講的內(nèi)容與VBS類關(guān)聯(lián)比較密切,在看本次講座之前建議大家首先熟悉一下類的組成, 這樣對(duì)于
學(xué)習(xí)本次講座內(nèi)容會(huì)比較輕松。如果平時(shí)在
自動(dòng)化測(cè)試過程中經(jīng)常使用類的朋友應(yīng)該會(huì)清楚,在Resources中引用帶有類的vbs函數(shù)庫之后,是不可以直接在QTP腳本編輯器中直接進(jìn)行類的初始化的。具體我們來看下例子。
1.首先我們編寫一個(gè)vbs函數(shù)庫,腳本如下:
Class ExcelClass Sub t1() MsgBox "t1" End Sub Sub t2() MsgBox "t2" End Sub End Class |
2.在QTP的File --> Settings --> Resources中引用此函數(shù)庫