WinApp(WindowsAPP)是運行在Windows操作系統上的應用程序,通常會提供一個可視的界面,用于和用戶交互。例如運行在Windows系統上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都屬于WinApp。常見的WinApp,其擴展名基本都是*.exe,運行后也都會有一個漂亮、易用的UI界面,本章就詳細介紹如何通過腳本實現WinApp的UI自動化測試。
![]()
1.1.WinApp測試簡介
Windows系統下開發GUI應用程序有很多方式,常見有基于C++的Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout,基于C#的Winform、WPF,基于Chromium和Node.js的Electron,基于Java的AWT、Swing,基于Pascal的Delphi,基于Go語言的walk,每種技術都有自己的亮點。但對于測試人員來說,都要全面開展測試,為保障產品質量下足功夫,帶給用戶好的體驗。
WinApp測試涉及面非常廣,大方向上可以從安裝與卸載、升級更新、UI界面、業務功能、性能、交叉事件、兼容性、安全性、硬件環境、異常情況幾個方面開展測試。
安裝與卸載:驗證程序是否可以正確安裝、運行、卸載。
升級更新:新版本發布后,存在更新提示,且下載、安裝、更新、啟動、運行、卸載等功能正常。
UI界面:驗證程序界面的布局、風格是否與需求相符,文字、菜單、配色、圖片等顯示正確,易操作、人性化。
業務功能:驗證需求說明書中描述的業務功能模塊均以實現,且符合預期。
性能:驗證程序的負載能力,對CPU、磁盤、內存、電量等的消耗。
交叉事件:與Windows系統上的其它應用互不影響。例如同時打開被測程序和其它一個程序,兩者互不干擾,都可以穩定運行。
兼容性:可以在支持的不同品牌、型號、系統版本上正常運行。
安全性:安全性是非常重要的一項測試,例如用戶權限、數據安全、接口安全。
硬件環境:不同硬件環境下驗證,例如CPU、磁盤、內存、筆記本電量等對程序的影響。
異常情況:各種異常情況下測試程序,例如磁盤不足、網絡不佳等情況。
WinApp的功能測試實質上和測試人員測試Web、移動端APP的功能測試是相同的,都是一種黑盒測試。以需求為準,運用各種測試方法設計測試用例,盡可能地思考、全覆蓋用戶使用場景,實現測試用例,保障產品質量。
1.2.WinApp自動化測試工具
WinApp自動化測試工具非常多,但不同的項目實現自動化測試有著不同的目的,因此根據自己需求結合自動化測試工具的優缺點,選擇合適的工具尤為重要,對后續的自動化腳本開發及維護都大有裨益。下面整理了一些WinApp自動化測試工具,給大家提供參考。
1.AutoIt
AutoIt當前最新版本是v3,是用以編寫并生成具有BASIC語言風格的腳本程序的免費軟件,它被設計用來在Windows GUI(用戶界面)中進行自動操作。使用AutoIt可以模擬鼠標和鍵盤實現對窗口/控件的操作,是一款非常優秀的Windows GUI自動化測試軟件。AutoIt有著諸多優點,例如簡單易懂的類BASIC表達式、操作窗口與進程、直接與窗口的"標準控件"交互、腳本可以編譯為標準可執行文件、COM支持、直接調用外部DLL和Windows API函數、高精度和易使用的數學運算。AutoIt在設計時就盡可能小,且不用依賴外部DLL文件或添加注冊表項目即可獨立運行,也可以安全的成為服務運行。腳本可以使用Aut2Exe編譯為可獨立運行的文件。
2.WinAppDriver
WinAppDriver(Windows Application Driver)是微軟的一款客戶端自動化測試工具,類似Selenium的UI自動化測試服務工具。支持測試運行在Windows 10或Windows Server 2016以上系統的UWP、WinForms、WPF、Win32程序。WinAppDriver支持Appium,因此使用Appium-Python-Client依賴庫可以像測試移動端APP一樣,完成Windows桌面程序的自動化腳本的開發。
3.PyWinAuto
PyWinAuto是Python的一個庫,用于測試Windows系統上的GUI應用程序,允許發送鼠標和鍵盤操作到窗口對話框和控件。PyWinAuto提供的API是對Windows標準控件的行為處理,例如指定窗口、鼠標操作、鍵盤操作、獲取窗口或控件屬性,使用方便,且對中文也有很好地支持。
4.PyAutoGUI
PyAutoGUI是Python的一個第三方庫,可對GUI程序實現自動化測試。主要通過控制鼠標和鍵盤,與其他應用程序交互。PyAutoGUI可以在Windows、macOS和Linux系統上工作,支持Python2和Python3。
5.Coded UI
Coded UI Test是Visual Studio 2010對于Testing Project(測試工程)提供的關于UI自動化測試的框架,支持Win32、Web、WPF等UI自動化測試,是一個非常強大的測試工具。它的原理是獲取到Windows窗口上的控件,然后針對控件的部分屬性進行獲取和對比,模擬對控件點擊、雙擊、右鍵點擊等事件。Coded UI不但支持手動編寫,還支持自動錄制。
6.UIAutomation
UIAutomation封裝了微軟的UIAutomation API,支持測試Win32、MFC、WPF、Modern UI(Metro UI)、Qt、Firefox等UI框架程序,它提供許多好用的功能,例如獲取窗口對象、窗口屬性調整、截圖、全局熱鍵注冊、剪切板操作和管理員權限提權。是一款非常優秀的自動化測試工具。
最后:在我的V:atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.