近日,DevExpress宣布他們是首個完整支持Coded UI的第三方控件提供商。借此機會,我們也談一談Coded UI,看看它在構建全面自動化測試套件中是如何發揮作用的。
任何Coded UI測試的核心都是UI Map。UI Map可理解為用戶行為記錄(例如,鼠標點擊),它同我們在文字處理器中創建的宏非常類似。除了自身的一些步驟之外,記錄還會識別后續可以交互的用戶控件。如何是一則樣例定義:
請注意“搜索屬性(search properties)”對話框,它用于測試運行器查找屏幕中的控件。你可以使用許多不同條件進行搜索,如下圖所示:
當用戶界面被干預導致測試失敗時,你會發現可能需要手工修改搜索屬性。減少這種手工操作的一種方法是給予關鍵控件一個名字或一個AutomationId。創建AutomationId 原先是用于輔助功能工具,如屏幕朗讀器與語音識別系統。不過對于這類情況,自動化客戶端技術也顯得非常實用。你可以查看MSDN進一步了解自動化與輔助功能。
UI Map還包含了構成宏的“記錄方法”(recorded methods)。一般情況下你會在設計器窗口中看到它們,不過你也可以講它們轉成源代碼形式。要注意的是,此類轉換是單向的,轉換后沒法恢復。
一旦調整好記錄,你就可以著手編寫測試了。以下是一個很簡單的測試用于確保序列結尾時多選框未被選中。
如你所見,單元測試中的概念同樣適用于Coded UI測試。不過,Coded UI測試有一些額外的注意事項。由于測試運行在應用程序的單個實例上,因此每個測試的終結狀態可能會干擾接下去的測試。
Coded UI中還有一些很有效的功能用于檢查測試結果。例如,當一個測試失敗時,截屏會被記錄下來并附加到測試結果中。
目前,只有Visual Studio高級版(Premium)與旗艦版(Ultimate)可使用Coded UI。奇怪的是,Visual Studio測試專業版 2012并沒有包含Coded UI。
原文轉自:http://www.anti-gravitydesign.com