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