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

3.我們知道創(chuàng)建一個(gè)類的實(shí)例方法是通過以下方式來進(jìn)行的
Set 實(shí)例名 = New 類名
此時(shí)如果直接在QTP中進(jìn)行創(chuàng)建類的話會直接報(bào)錯(cuò):
Set eom = new ExcelClass
eom.t1
4.那么對于以上這種情況,我們一般所采用的方式是在函數(shù)庫中建立一個(gè)函數(shù),讓此函數(shù)返回這個(gè)類的實(shí)例化。
Class ExcelClass Sub t1() MsgBox "t1" End Sub Sub t2() MsgBox "t2" End Sub End Class '定義ExcelClass的無參構(gòu)造 Function NewExcelClass Set NewExcelClass = new ExcelClass End Function |
5. 接著在QTP腳本編輯區(qū)中直接把這個(gè)函數(shù)返回就可以使用了
Set eom = NewExcelClass eom.t1 |
思考:
是否可以按照如圖所示的方式把New ExcelClass作為函數(shù)名進(jìn)行編寫呢,這樣我們就可以直接在QTP腳本區(qū)中進(jìn)行new一個(gè)類出來,是不是更加直觀呢,這一塊我們會留到下一講進(jìn)行講解。
總結(jié):
這一講內(nèi)容比較基礎(chǔ),主要還是為了照顧一些新人,下一講我們會繼續(xù)深入講解類構(gòu)造器,主要會涉及到帶參構(gòu)造器的設(shè)計(jì)模式,請大家期待。
posted on 2014-01-20 10:10 順其自然EVO 閱讀(451) 評論(0) 編輯 收藏 所屬分類: qtp