VSTS 2010新功能 了解CodedUI Test
如果你對VSTS 2010的測試員版本感興趣,而又沒有TFS 2010,只裝了VSTS 2010 BETA 1,那么就只能體驗一下VSTS 2010的一個新功能–CodedUI Test。
微軟在VSTS2010以前的版本都不太重視手工測試和功能測試的支持,估計是因為Visual Studio 2010本來是一個集成開發環境的原因,不過到了VSTS 2010,情況完全不一樣了,微軟想把VS改造成為一個貫穿整個ALM(Application lifecycle management)的主要工具,所以在VSTS2010中加強了對測試計劃、測試用例,相關報告等的支持。
CodedUI Test就是面向功能測試工程師,給他們提供自動化測試支持的這么一個新功能。下面我一步步演示一下怎么用CodedUI Test來對WINDOWS自帶的計數器實現簡單的自動化功能測試。
1. 新建一個測試項目,這個步驟與前幾個版本的VS一樣,就不重復累贅了。
2. 在該測試項目中新建一個CodedUI Test,如圖所示:
3. 當CodedUI Test被創建以后,VS會提示用戶,是否立刻創建相關的自動化測試代碼,如圖所示:
這里會看到3個選項:Use an action recording associated with a test case or shared steps,這個選項是建立在有TFS的情況下才能實現的,因為在2010中,測試工程師可以編寫測試用例,并且保存在TFS中,當有人要用CodedUI Test來實現某個測試用例的時候,就可以通過這個選項來把自動化測試和測試用例關聯起來,不過可惜我沒有TFS。Use the recorder,這個選項比較常用,就是啟動一個VSTS自帶的錄制工具來實現自動化測試,這個也是下面要詳細分享的。User the UI control Locator,這個選擇會直接用VS的UI Control Locator來對被測程序的控件進行識別。
4. 選擇User the recorder,然后就會彈出一個錄制的窗口,如圖:
點擊那個“Record Actions”就能開始錄制了。VS的錄制器做的挺人性化的,如果焦點不在錄制器上,那么錄制器就會變成透明,方便用戶對被測軟件的關注,下面是兩個比較的圖片。
選中錄制器
沒有選中錄制器,而且在被測軟件的標題欄中還有一個狀態提示,表面現在錄制器在工作。 #p#
5. 開始執行測試用例,錄制器會記錄下所有的步驟,如圖:
計算器進行了1+1的操作,錄制器記錄下了所有操作(大家可以看到是Click ‘1′ button, Click ‘+’ button等操作),現在把這3個操作合并成為一個方法,填入方法名,然后點擊“Generate Method”,測試方法就被生成了,回到剛才的Record Actions的TAB,我們可以看到所有已經被錄制的操作,如圖:
這里每一個操作,到最后對應的都是一個方法,也意味著這些操作都是可以被重用的,所以每一個Action的顆粒度大家可以自己把握,個人認為不應該做太大顆粒度的Action,首先不利于重用,其次也不利于維護。
6. 增加檢查點,對于一個自動化測試來說,自動化執行和自動化檢查都是必不可少的。
現在把標簽從Record Actions切換到 Add Assertions中,選中“UI Control Map”下方那個唯一可用的按鈕,系統會彈出一個新的窗口,如圖:
拖動右上角的那個十字按鈕到某個控件上,這里可以把這個十字拖動到計算器的結果欄中。這時候VS識別出這是可以Edit控件,我也確定這個就是我想要對之進行驗證的地方。點擊ADD:
選擇了正確的控件,還需要對正確的屬性進行比較。第一步是顯示該控件的所有屬性:
如圖:
圖中,上面的部分是公共的屬性,例如類名,名稱,是否激活等;下面的部分是該控件特有的屬性,例如它的文字屬性(Text),是否是只讀的等等。我現在只需要比較Text屬性是等于2.的就可以了。因為很簡單,1+1=2. 完成這一步以后就能看到一個控件被添加到了UI Control Map中,里面已經記錄了那些屬性需要進行比較。
7. 回放檢查,瀏覽到剛才生成的測試,然后點進運行,我們就會看到VSTS在重復我們剛才的操作,并且對結果進行了比較,測試執行完畢。
至此,我們已經完成了一個簡單的CodedUI Test。微軟的VSTS2010提供了與其他類似的自動化功能測試軟件的錄制回放功能,但是與常見的功能測試自動化工具(例如QTP,微軟的RFT)比較而言,VSTS2010所提供的Recordor使用起來并不是十分方便,感覺操作起來都不如其他測試工具用起來方便。不過有一點是非常值得肯定的,就是微軟沒有大肆宣揚他的工具能夠實現錄制回放功能,而解除過自動化測試的朋友都知道,用錄制回放來實現自動化測試是相當地危險的,而且成功的機會也很小。這可能就是微軟把VSTS2010提供的功能測試自動化的功能命名為CodedUI Test的原因吧。首先這是一種測試,其次,它還是一種針對UI的測試,而其實現是代碼。這個對于以后修改和維護測試來說,是比較方便的。
由于沒有TFS,所以沒有能把自動化測試和測試用例聯系起來,我個人覺得,如果單獨使用CodedUI Test的話,實現自動化測試真的比較費勁(可能由于BETA,加上我在虛擬機上安裝,奇慢無比),而且看不出來VSTS2010比其他商業軟件或者開源解決方案有什么優勢。不過我感覺如果能把CodedUI Test與測試用例管理結合起來,然后再利Lab Manager上的一些功能,一定會有不錯的效果。不過Lab Manager這個東西太大太重,在中小公司估計是比較難推廣的。VSTS版本不斷升級,慢慢地從一個純粹的集成開發環境,過度到貫穿整個應用程序開發生命周期管理的平臺了。
【編輯推薦】