qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          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
            2.在QTP的File --> Settings --> Resources中引用此函數(shù)庫


            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

          <2014年1月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 奉贤区| 虞城县| 横峰县| 锡林浩特市| 石楼县| 台东市| 格尔木市| 深圳市| 英吉沙县| 富民县| 霸州市| 衡东县| 连山| 大宁县| 沈丘县| 玛沁县| 边坝县| 漾濞| 宿松县| 永春县| 二连浩特市| 洪泽县| 汝南县| 句容市| 楚雄市| 莎车县| 施秉县| 罗定市| 霸州市| 牟定县| 怀远县| 读书| 赣州市| 南京市| 宜昌市| 罗甸县| 黑龙江省| 孝感市| 都江堰市| 怀化市| 孝昌县|