Coded UI 自動化測試初步研究
提到Windows的UI自動化,不得不能不說Coded UI測試。Coded UI測試是微軟在VS2010里面推出的一個新功能,概念其實也不是很新,就是通過錄制回放的功能來盡可能的簡化Windows的UI自動化。
個人的理解,Coded UI的底層仍然是基于Windows TestAutomation SDK的Code,它的最大的作用就是把Code封裝了一層,使之能為可以調(diào)用的方法,大大簡化了測試人員對于編碼的硬需求,不懂C#或者VB的測試人員可以很容易的利用Coded UI開展自動化。
Coded UI不僅可以測試Windows的應(yīng)用程序(據(jù)說對WPF支持的特別好),它也可以對Web瀏覽器開展測試,VS2010支持微軟的IE和Firefox,我用的是VS2013,還沒有來得及用這個東西測網(wǎng)站,我一般都用Robotframework + Selenium2library進(jìn)行測試。
筆者最近在做一個和SCCM相關(guān)的項目,希望通過Coded UI能實施一些UI自動化的工作,嘗試了一下,感受如下
怎么用Coded UI
1. 先分析Windows應(yīng)用程序是啥技術(shù)
這個估計測試人員用肉眼看不出來,可以請教開發(fā),或者用一些工具幫忙看。Coded UI據(jù)說對WPF支持的比價好,對MFC支持的一般。
知道了這點,心里面可以有個數(shù),對后面測試中可能的風(fēng)險有個心理準(zhǔn)備
2. 錄制
打開VS,建立一個Test Project,然后選Coded UI,VS2013的步驟大概就是這樣,VS2010會復(fù)雜一點, anyway,然后差不多就可以開始錄制了
錄制的窗口很小,點擊紅色的按鈕就可以開始錄制了,錄制沒什么特別的,Coded UI會記錄你的鼠標(biāo)和鍵盤的操作,并把他們變成一些可以用術(shù)語表現(xiàn)得事件。
備注:錄制的時候可以加入Assertion,這是為了判斷測試結(jié)果的需要,否則錄下來的就是一步一步的UI操作,特別注意。加入Assertion需要對Windows的控件屬性有一點了解。
3. 調(diào)整錄制結(jié)果
錄制完了要點停止,之后點擊中間的階梯的按鈕,就會出現(xiàn)錄制的動作,這些動作都用很容易理解的步驟呈現(xiàn)在面板上。之后點擊最右邊的按鈕就可以生成代碼了。
需要給生成的代碼取個名字,做為一個動作次序的標(biāo)志
4. 調(diào)整UI操作次序以及其他屬性
雙擊右側(cè)Panel的UIMap.uitest,就可以打開UI操作的面板

里面包括了以前錄制過的每一個動作次序,點開之后可以看到具體的動作,左邊是錄制的次序,右邊是控件的定位方法,定位的方法和一般的Windows Ui自動化定位元素相比,其實變化不大,從窗口開始,一層一層的找Windows的控件,直到能夠精確的定位。
用右鍵點擊一個動作次序,可以發(fā)現(xiàn)也就幾個選項,注意,不能在這里把一個動作次序里面的動作移到別的動作次序里面去,除非你改后臺的代碼。(改后臺的代碼不是微軟推薦的最佳實踐)
調(diào)整的另外一個目的是優(yōu)化對控件的查找,右鍵點擊控件的樹形結(jié)構(gòu),你可以很容易的使用“Locate the UI Control"對控件進(jìn)行定位,也就是看看Coded UI目前還能不能找到這個控件。
如果找不到,大概有兩個原因
a. 原來的Windows應(yīng)用窗口已經(jīng)關(guān)閉了,需要重現(xiàn)打開
b. 控件的屬性發(fā)生的變化,需要再定義。
如果真的屬于控件屬性變化,需要通過UIVerifier或者UI Spy重新查找該控件的屬性,這不屬于本文討論的范圍
修改控件定位的方法是這樣,先選一個控件,然后點"Search Properties"之后會出現(xiàn)對于控件的定義,然后修改這些定義就可以了。
5. 組合測試用例
錄也錄了,改也改了,剩下來的工作就是把他們組合成測試用例,組合的方法就要動代碼了,這個我就不多說了,通過排列
”this.UIMap.次序的名字“,來把測試用例進(jìn)行再組合
posted on 2014-05-12 10:33 順其自然EVO 閱讀(1158) 評論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學(xué)習(xí)