對Windows桌面應用程序進行UI自動化測試


題記:本文簡述如何利用appium對Windows桌面應用程序進行UI自動化測試。


所謂UI自動化測試,就是模擬一個用戶,對應用程序的UI進行操作,以完成特定場景的功能性集成測試。


要對Windows桌面應用程序進行UI自動化測試,目前可選的技術主要是兩種:VS自帶的CodedUI Test和Appium+WinAppDriver。但是,微軟已經宣布VS2019將是帶有CodedUI Test的最后一個版本,且在面對某些復雜場景的時候有點力不從心。而Appium作為移動應用主流的UI測試工具,已經被業界廣泛采用,且相關的接口是標准化的,因此微軟對其進行了擴展(即WinAppDriver),讓Appium可以支持包括Universal Windows Platform (UWP), Windows Forms (WinForms), Windows Presentation Foundation (WPF), and Classic Windows (Win32)之內的Windows桌面應用。所以采用Appium來作為Windows桌面應用程序UI自動化測試的工具是最佳選擇。


要完成UI自動化測試的大致步驟如下(你首先需要一台Windows 10的PC):

1,准備好待測試的Windows桌面應用程序。

2,到 https://github.com/Microsoft/WinAppDriver/releases 下載WinAppDriver的安裝包,進行安裝。並啟用Windows 10的開發者模式。從安裝目錄(比如:C:\Program Files (x86)\Windows Application Driver)來啟動WinAppDriver。

3,用你喜歡的測試框架創建UnitTest項目,在項目中引用Appium.WebDriver這個Nuget包。

4,編寫測試用例,執行測試。


整個用例的編寫也相對簡單:

1,使用DesiredCapabilities來設定要測試的目標應用。

2,使用WindowsDriver<WindowsElement>來聲明測試的會話。

3,通過測試會話查找對應的UI元素,對UI元素進行SendKeys(模擬填寫內容)和Click(模擬點擊)等操作,或者獲取UI元素的相關Property和Attribute來進行驗證。

4,編寫測試最挑戰的地方就是在於如何查找到UI元素,我們可以借用Windows SDK里面的inspect.exe這個工具來輔助我們查找。工具的位置在C:\Program Files (x86)\Windows Kits\10\bin里面的特定版文件夾中。用法是先啟動應用程序並導航到待測試的界面,啟動這個工具就會獲得桌面上所有窗口的UI元素層級關系,並通過焦點等方式導航到要查找的UI元素上。查看相應的信息,並采用適合的查找方式。具體的查找方式可見:https://github.com/Microsoft/WinAppDriver#supported-locators-to-find-ui-elements。選擇適合的查找方式有時候需要多嘗試幾種,有些UI元素只能用特定的方式來查找,比如html的input button只用FindElementByName ,而html的button就可以用FindElementByAccessibilityId 。


測試用例的編寫可以參考WinAppDriver源代碼自帶的Sample,也可以參照我的示例:https://github.com/heavenwing/WindowsAppUITestSample

在我的這個示例當中,目標應用采用的是Hybrid方式運行(即通過WebBrowser來嵌入html,並用C#進行行為操作),考慮到這種應用程序可能是多個函數庫組裝在一起,所以測試項目理應也是多個項目組合的(即功能函數庫對應一個測試項目),並且其他測試項目可以復用公共的測試步驟(比如:列表頁面復用登錄的測試步驟)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM