qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          QTP中使用自定義vbs類

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


            3.我們知道創建一個類的實例方法是通過以下方式來進行的
            Set 實例名 = New 類名
            此時如果直接在QTP中進行創建類的話會直接報錯:
            Set eom  = new ExcelClass
            eom.t1
            4.那么對于以上這種情況,我們一般所采用的方式是在函數庫中建立一個函數,讓此函數返回這個類的實例化。
          Class ExcelClass
          Sub t1()
          MsgBox "t1"
          End Sub
          Sub t2()
          MsgBox "t2"
          End Sub
          End Class
          '定義ExcelClass的無參構造
          Function NewExcelClass
          Set NewExcelClass = new ExcelClass
          End Function
            5. 接著在QTP腳本編輯區中直接把這個函數返回就可以使用了
          Set eom  = NewExcelClass
          eom.t1
            思考:
            是否可以按照如圖所示的方式把New ExcelClass作為函數名進行編寫呢,這樣我們就可以直接在QTP腳本區中進行new一個類出來,是不是更加直觀呢,這一塊我們會留到下一講進行講解。
            總結:
            這一講內容比較基礎,主要還是為了照顧一些新人,下一講我們會繼續深入講解類構造器,主要會涉及到帶參構造器的設計模式,請大家期待。

          posted on 2014-01-20 10:10 順其自然EVO 閱讀(449) 評論(0)  編輯  收藏 所屬分類: qtp

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 永吉县| 大埔区| 乌拉特后旗| 乌拉特中旗| 沙坪坝区| 米易县| 广南县| 泰宁县| 临潭县| 孝感市| 桂阳县| 泰来县| 丽水市| 兴宁市| 滦南县| 镇赉县| 丹东市| 克东县| 屏边| 时尚| 洱源县| 叙永县| 洪湖市| 庆安县| 芷江| 威信县| 洱源县| 宜兴市| 嘉义市| 璧山县| 收藏| 佛冈县| 和田县| 松阳县| 葫芦岛市| 苗栗市| 明水县| 江西省| 武宣县| 吉林省| 邯郸市|