標籤:windows windows phone 8 自動化測試 測試 自動化
前言
Windows Phone是個相對新的的平台,目前應用的數量少,相同應用的功能實現度也不如iOS和Android. 那麼在Windows Phone上面的自動化測試的解決方案有什嗎?
目前就msdn來看,SeeTest是微軟推薦的測試方案。
大家知道微軟在VS裡面整合了自動化測試載入器Coded UI,那麼Coded UI除了能測Windows, Web應用,它能不能支援Windows Phone應用呢?
利用Coded UI做Win Phone自動化的過程
利用Coded UI是可以做Windows Phone的自動化測試的,但是支援的不是很好,大概說一下流程
1. 首先需要一個真的Windows Phone或Windows Phone模擬器
(Windows Phone模擬器需要電腦支援一些硬體需求,貌似是基於Hyper-V技術,不要指望在虛擬機器(vSphere, XenServer)裡面能類比,不過VMware workstation好像是可以的)
2. 需要VS 2013 + update 2,裝的時候注意要選Windows Phone 8的SDK
3. 裝好了之後,建一個Coded UI測試工程
4. 編寫測試的代碼
我寫了一個很小的Windows Phone程式,這個程式的UI是基於XamL的。
下面就談談幾個步驟
a. 啟動應用
這一步就非常巧妙,和Android和iOS啟動應用完全不同,啟動應用需要得到應用的AutomationID,然後啟動。
開啟Coded UI的錄製介面,然後把滑鼠移動到被測Windows Phone應用後,鍵盤使用快速鍵 Ctrl+Shift+I,就可以獲得當前控制項的AutomationID
(注意中虛化的那個視窗)
使用下面的Code開啟特定應用
String Myapp = "{F0915983-7002-4079-A128-81323EFAA57A}:App:f0915983-7002-4079-a128-81323efaa57a_rkdnfethpsswy!App"; XamlWindow.Launch(Myapp);
b. 識別控制項
Coded UI不支援Windows Phone應用的錄製,這點是比較頭疼的,目前我採用的辦法是這樣。
b.1 按照 <a.啟動應用> 的辦法,利用快速鍵Ctrl+Shift+I查看控制項的屬性。
b.2 對控制項加入一個Assertion
b.3 加入了Assertion之後,Coded UI就會把這個控制項識別下來,在Coded UI的編輯介面就可以看到這個控制項,(注意,如果你只是識別這個控制項而不加Assertion,控制項是 不會記錄下來的)
然後就簡單了,先選擇控制項,然後按快速鍵Ctrl + C,控制項的代碼就拷貝下來了(例如 UIMap.UIWpappWindow.UIAEdit),下面就要看怎麼操縱了
c. 操縱控制項
目前研究出兩個方法,一個是點擊,另外一個是輸入
c.1 點擊
利用以下代碼,括弧裡面是控制項的例子
Gesture.Tap(UIMap.UIWpappWindow.UIPlusButton);
c.2 輸入
利用一下的代碼,控制項.Text = "賦值"
UIMap.UIWpappWindow.UIBEdit.Text = "200";
類Microsoft.VisualStudio.TestTools.UITesting.Gesture,裡面還有其他的方法,大家可以仔細揣摩。
d. 檢查結果
這個和Coded UI的傳統操作差不多,就是利用Assertion,這裡就不多說了
e. 其他主意事項
e.1 目前Coded UI只支援基於Xaml的Win Phone應用,如果你看到了以下的,請不要大驚小怪
個人認為估計目前Image Recognition才是擴充Win Phone自動化測試的唯一途徑。
小結
利用Coded UI做Win Phone應用的自動化,目前並不是很成熟,它也缺乏iOS和Android的開源界的鼎力支援,其實也算尷尬。個人還是支援Win Phone應用的發展的,希望其以後能越來越強大,讓測試人員在行動裝置 App測試上有更多職業機會。