QTP自動化測試權威指南 連載(三)
對象識別(Object Identification)
對象識別是實現測試腳本的關鍵部分。QTP不能隨意的錄制對象,它在記錄對象的一組屬性時是遵循一定結構的。我們可以更改這些屬性,以適應應用程序。更改設置可以在 Tools->Object Identification…
有三種類型的屬性可以被QTP用來識別對象:
● 強制屬性 - 強制屬性總是被捕捉并保存,即使沒有其中的一些屬性,對象也能識別也不例外。
● 輔助屬性 - 假如強制屬性不足以唯一識別某對象,那么可以依次添加輔助屬性,直到對象可以唯一識別。
● 順序標識符 - 一旦在使用了強制屬性和輔助屬性后,對象仍然不能唯一識別,那么可以使用序數識別。有三種類型的序數識別:
圖3-8 對象識別設置
圖3-8 顯示了WebCheckBox的強制屬性和輔助屬性。
小提示:這些設置是常規的全局設置,并不基于任何腳本。我們可以根據需要添加和刪除。
用戶定義的對象
QTP使用窗體的類名來識別對象的類型。假如我們的應用程序沒有使用標準的窗體類,那么QTP就可能無法正確識別對象。Windows的搜索對話框有一些CheckBox放在了自定義的控件內,當我們試圖添加他們到QTP對象庫中時,它們只能被識別為WinObject,如圖3-9所示。這是由于Qtp不能把這些CheckBox識別成一般的測試對象。
圖3-9 搜索窗口中的CheckBox識別成了WinObject
因此我們需要在QTP設置中,把這個CheckBox映射成WinCheckBox.打開Tools->Object Identification ,然后選擇標準Windows環境,點擊User Defined按鈕,就會彈出映射對話框。點擊手型按鈕,然后點擊CheckBox后,類名就被添加,并且我們可以映射到CheckBox,如圖3-10所示。點擊Add按鈕添加這個映射。
3-10用戶自定義對象映射
映射后,QTP便可識別這個對象為WinCheckBox,如圖3-11所示。
圖3-11 用戶自定義對象識別為Checkbox
對象庫的不足
作者認為QTP 8.x的對象庫有一些不足:
● 對象庫管理器不允許批量更新對象屬性到腳本。
● 其他對象下面的對象不能被刪除或復制。
● 當一個框體(frame)被加入到了被測的應用程序中時,那么整個測試腳本都要重新錄制。
● 當重新錄制一個頁面或者窗體時,完全一樣的對象經常會重復添加,因此,會創建很多相同的頁面或窗體:Page_1, Page_2諸如此類。有時候這個問題可以通過更改Web設置來解決,
打開Tools->Options…Web(Tab)->Page/Frame Options…然后更改設置如圖3-12所示
圖3-12頁面和框體選項
小提示:以上所述的大多數的不足在 QTP9.x中已經得到解決。
?。ㄎ赐甏m)
版權聲明:51Testing軟件測試網及相關內容提供者擁有51testing.com內容的全部版權,未經明確的書面許可,任何人或單位不得對本網站內容復制、轉載或進行鏡像。51testing軟件測試網歡迎與業內同行進行有益的合作和交流,如果有任何有關內容方面的合作事宜,請聯系我們。
相關鏈接:
posted on 2013-06-18 10:54 順其自然EVO 閱讀(449) 評論(0) 編輯 收藏 所屬分類: qtp