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