QTP學習資料歸總02

QTP學習資料歸總02

如果你已經訂完了飛機票,可能不知道下一步該怎麼走,我把自己的一些理解寫下來,希望大家能夠有所幫助

一.理解對象的識別(什麼是QTP的對象?所有我們要操作的東東都可以稱爲對象,Browser、WebEdit等等都是)
        1.描述性編程識別對象
                描述性編程有多種用法,一種如下所示
                        Browser("CreationTime:=0").Page("index:=1").WebEdit("name:=" & edit).Set "ha"
                        (這種方法我沒怎麼用過,個人感覺不如直接使用對象庫方便)
                另一種用法,如下面的函數是用來選中所有的選項框的
                        Public function SelectAllCheckBox()
                                '創建滿足下面三條屬性的對象(即WebCheckBox對象)
                                Set NewObject = Description.Create
                                NewObject("micclass").value ="WebCheckBox"
                                NewObject("html tag").value="INPUT"
                                NewObject("class").value = "checkBox_class"
                               
                                'Page頁面下的所有的滿足上面條件的WebCheckBox的集合
                                Set NewObjects = Browser("Browser").Page("page").ChildObjects(NewObject)
                                '統計WebCheckBox的數目
                                Numbers = NewObjects.Count
                               
                                For i = 0 to NewObjects.count - 1
                                        '將每一個WebCheckBox對象選中
                                        NewObjects(i).Set "ON"
                                Next
                        End Function
                        大家可跟據這種模式進行其他的各種操作
                其他的用法我也不瞭解了~~
        2.對象庫識別對象
                對象庫大家肯定在用了,但是要注意的問題:
                (1).會用高亮顯示查看對象庫中的對象在實際中對應的位置。
                (2).如何在對象庫中使用正則表達式?(選中那個Regular Expression就可以用了)
                (3).在錄製過或添加對象時,同樣的對象卻添加了個 _2 的新對象,怎麼辦?(Tools=>Option=>Web=>Page/Frame Option=>全選Different Test Object Descriptions,以及Tools=>Object Identification裏的設置要與對象庫裏的對象一致)
                (4).共享對象庫的使用。對象庫以xml導出導入。
        個人理解:描述性編程是對象庫的補充,它們識別對象的機制是一樣的,實際應用應當以對象庫爲主,描述性爲輔(像選中所有選項框的那個函數用對象庫就難以實現)
二、學習正則表達式
        用多少學多少吧,我覺得不需要刻意去學,夠用就行了~
三、函數化封裝與調用
        如何加載外部文件?(1.File=>Setting=>Resources可加載.vbs、.qfl、.txt的文件,加載後在Resource=>Associate Function Liberaries下面可以打開查看 2.ExecuteFile "../../Libraries/Enviroment.vbs"的模式)
        使用Function或Sub或Class封裝一些操作,設置參數,進行調用。(最近在研究使用Class,呵呵)
四、數據驅動
        Excel中的數據導入導出。在幫助裏輸入DataTable,所有的知識在那裏都可查到。(不知道這算不算數據驅動)
五、到了這裏我想就應該拿出時間來把QTP仔細研究一下了,把它所有的菜單下面的條目都看一下,結合着幫助,至少也要知道他們各自是幹什麼的。
        1.瞭解相對路徑的知識。爲了腳本的可移置性,相對路徑是要懂得的。
        2.怎樣設置運行速度啊,錯誤處理啊,各種加載的東東啊~~
六、框架。
        現在應該對QTP有了一個大致的把握了吧,可能已經躍躍欲試想做個實際的項目了,但是一旦應用起來,問題又來了:如何實現最大的可重用性、可擴展性和可維護性?這時候就要進行一些取捨,參考論壇上的一些框架的討論,有的捨棄了對象庫,用描述性編程Excel關鍵字驅動(像夢醒十分的框架),有的保留對象庫進行多層模式設計。這方面我的做法是使用對象庫,分爲三層模式進行設計腳本。
七、寫一些通用的函數。
        這時,如果對QTP的Reporter不滿意了,可能要自己寫個WriteLog()函數將結果寫到.log或Excel文件裏去。寫一些處理xml、excel,連接數據庫的通用的函數,積累一些常用的方法,如        SystemUtil.CloseProcessByName("iexplore.exe")、SystemUtil.Run "iexplore.exe",URL、DeskTop.CaptureBitmap ...等等等等
八、後來,你可能覺得根據項目的需要,QTP許多工作做不了,於是,可能需要學習Windows API,可能學習編寫dll庫文件...學習一些與QTP沒有關係的知識,還可能自己編寫一些小程序讓QTP調用。這時,你會明白,QTP只不過是一個工具而已~~

我自己學習QTP也才三四個月吧,還有很多的知識需要學習,如果我的理解有錯誤,還請給我指出來,不盛感激!
打這些字花了很長時間,如果對新手有所啓發,我將非常高興!希望能與大家共同進步!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章