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

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


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


要對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自動化測試的工具是最佳選擇。github


要完成UI自動化測試的大體步驟以下(你首先須要一臺Windows 10的PC):app

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,編寫測試用例,執行測試。測試


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

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

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#進行行爲操做),考慮到這種應用程序多是多個函數庫組裝在一塊兒,因此測試項目理應也是多個項目組合的(即功能函數庫對應一個測試項目),而且其餘測試項目能夠複用公共的測試步驟(好比:列表頁面複用登陸的測試步驟)。

相關文章
相關標籤/搜索