圖3-2.Add/Remove Properties
對象是如何被添加到對象庫的?
對象可以通過兩種方式添加到對象庫:
1、通過錄制與被測應用程序的交互過程添加。
2、手工添加一個或多個對象。
我們可以點擊"Add Objects"按鈕,然后點擊我們要添加的對象,通過這種方式,我們便可以手工添加對象到對象庫中。
注意:假如我們要添加的對象是在鼠標點擊之后才出現,那么我們可以先按下Ctrl鍵,然后再去點擊。這個方法可以讓我們臨時屏蔽對象選擇模式,從而進行鼠標操作。一旦我們準備好了要添加的對象,就可以放開Ctrl鍵,進行添加了。
如果我們需要在應用程序間切換,可以先按住Ctrl+ALT鍵去屏蔽對象選擇模式,然后使用例如Alt+Tab鍵來在不同的應用程序間切換,完成切換后,再次按下Ctrl+ALT鍵后便可進入對象選擇模式并添加對象了。
對象一旦被選中,便會在對象選擇窗口中出現
圖3-3.對象選擇
本對象選擇窗口顯示了Web頁面上的完整的對象結構。選擇你需要添加的對象然后點"OK"鍵就可以了。
小提示:對象選擇窗口顯示的對象可能會和錄制到對象庫的不一致。QTP只保留能識別對象的必須的對象結構,這樣就可以在測試腳本使用對象時,減少代碼的長度。
如果我們選擇一個Page對象,然后繼續,QTP就會詢問我們是否要添加它的子對象。
圖 3-4. 對象選擇
選擇Selected object and all its descendants這個單選按鈕,然后點擊OK, 頁面上所有的對象都會被添加到對象庫中去。
提示:對象庫不能添加頁面上的隱藏對象。
測試對象和運行時對象
測試對象(TO):測試對象是QTP定義的一些類,用它們來代表被測應用的各種對象。
運行時對象(RO):運行時對象是實際的被測應用的對象,是測試執行過程中,TO用來關聯的對象。
理解這兩種對象類型的區別是非常重要的??梢钥闯蓛奢v車;車A和車B,QTP能在腳本里用一輛車的測試對象來描述出兩輛車A和B。除此之外,每個測試對象也提供了用來和運行時對象交互時相關聯的方法和屬性。
比如Start,Run和Stop都是汽車對象提供的有用的方法。
TO屬性
測試對象的屬性是QTP為了識別在測試執行過程中的運行時對象而保留在對象庫中的屬性。QTP提供GetTOProperties方法來列舉對象的所有的TO屬性.GetTOProperty和SetToProperty則分別用了讀取和修改TO的屬性值。
問題 3-1. Test Object 屬性的使用
'獲取webeidt對象 Set oWebEdit = Browser("").Page("").WebEdit("") '獲取webedit對象封裝屬性集合 Set TOProps = oWebEdit.GetTOProperties() Dim i, iCount iCount = TOProps.Count - 1 '遍歷所有封裝屬性 For i = 0 ToiCount '獲取屬性名 sName = TOProps(i).Name '獲取屬性值 sValue = TOProps(i).Value '檢查是否為正則表達式 isRegularExpression = TOProps(i).RegularExpression '顯示結果 MsgboxsName&"->" &sValue&"->" &isRegularExpression Next |
問題 3-2. 運行時改變Test Object 屬性
'獲取webedit對象 Set oWebEdit = Browser("Browser").Page("Page").WebEdit("txtName") '獲取webedit的name封裝屬性值 oldName = oWebEdit.GetTOProperty("name") '變更webedit對象的name封裝屬性 oWebEdit.SetTOProperty"name","new value" '獲取已修改的屬性 newName = oWebEdit.GetTOProperty("name") MsgBoxnewName |
問題 3-3. 測試中獲取運行時對象屬性
'x為WebEdit對象運行時的value屬性值 x = Browser("").Page("").WebEdit("").GetROProperty("value") MsgBoxx |
原文轉自:http://www.uml.org.cn/Test/201307084.asp