測試對象層主要用于識別待測應用程序的測試元素(按鈕,文本框,下拉框,導航…),主要包括靜態識別和動態識別兩種方式。由于動態識別的靈活性和易維護性,復雜度較高的項目一般采用動態識別的方式來識別對象。動態識別是通過界面元素的特定屬性(包括元素類型,層次結構等等)來識別對象。通過構建一個統一的界面元素識別入口 Object Finder,并在識別入口處插入 Logger 記錄識別的結果,即可記錄所有的界面元素識別情況:正確則在日志中顯示 Pass,錯誤則顯示相應的錯誤識別消息和元素的識別屬性。日志框架通過對界面元素識別情況的記錄可以迅速的幫助測試開發人員定位到由于界面元素識別失敗而造成的失誤,大大減少了調試時間。下面以 RFT 為例說明如何構建一個統一的識別入口以及如何使用 Logger 記錄識別情況(本文僅針對自動化測試中最常用的動態識別)。
測試任務層主要基于測試元素進行各種操作,不同軟件程序的業務邏輯雖然千變萬化,但都基于一套標準的鼠標和鍵盤操作。無論業務邏輯多么復雜,都是基于鼠標點擊,文本輸入,界面導航實現的。根據自動化測試項目的這些特點,將鼠標鍵盤的原子操作提取出來作為 Common Task,并在 Common Task 里插入 Logger 記錄原子操作的正確性即可實現對 Task 層的運行的監控。
本文在 ITCL 基礎上,通過實現對統一的對象識別入口和原子操作入口的監控和日志記錄幫助自動化測試開發人員在開發和維護時迅速的定位錯誤。
動態識別是通過 find 方法和屬性找到相應的對象,頁面元素的屬性可以映射為一個以特定分割符分割的文本串。因此對于任意頁面元素,定義好了其屬性識別串,即可按如下方法來進行頁面元素識別,以 findObjectByProperties 作為唯一對象識別入口,并在其中插入 Logger 記錄識別結果。下圖以頁面登陸為例說明:首先在對象識別庫中(Object Repository)以文本形式記錄登陸框識別屬性,在對象識別時找到相應的屬性識別字符串,調用 setPropertyGroup 解析字符串為屬性組,將屬性組輸入到 find 方法中查找返回對象。如果有相應對象,則 Test Logger 在日志中顯示 Pass,如果沒有識別到相應對象,則顯示 Fail。
原文轉自:http://www.ibm.com/developerworks/cn/rational/1611_xux_rft/index.html