WinApp(Windows APP)是運(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è)試。
WinApp測(cè)試簡(jiǎn)介
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語(yǔ)言的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ì)量。
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è)試工具,給大家提供參考。
AutoIt
AutoIt當(dāng)前最新版本是v3,是用以編寫并生成具有BASIC語(yǔ)言風(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),例如簡(jiǎ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)行的文件。
https://pypi.org/project/PyAutoIt/0.3/
Airtest
Airtest是網(wǎng)易出品的一款基于圖像識(shí)別和poco控件識(shí)別的一款UI自動(dòng)化測(cè)試工具。Airtest的框架是網(wǎng)易團(tuán)隊(duì)自己開發(fā)的一個(gè)圖像識(shí)別框架,這個(gè)框架的祖宗就是一種新穎的圖形腳本語(yǔ)言Sikuli。Sikuli這個(gè)框架的原理是這樣的,計(jì)算機(jī)用戶不需要一行行的去寫代碼,而是用屏幕截屏的方式,用截出來的圖形擺列組合成神器的程序,這是Airtest的一部分。另外,Airtest也基于poco這個(gè)U控件搜索框架,這個(gè)框架也是網(wǎng)易自家的跨平臺(tái)U測(cè)試框架,原理類似于appium,通過控件的名稱,id之類的來定位目標(biāo)控件,然后調(diào)用函數(shù)方法,例如click(),swip()之類的方法來對(duì)目標(biāo)控件進(jìn)行點(diǎn)擊或者是操作.
http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/5_airtest_framework/airtest_api_info.html
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 依賴庫(kù)可以像測(cè)試移動(dòng)端APP一樣,完成Windows桌面程序的自動(dòng)化腳本的開發(fā)。
PyWinAuto
PyWinAuto是Python的一個(gè)庫(kù),用于測(cè)試Windows系統(tǒng)上的GUI應(yīng)用程序,允許發(fā)送鼠標(biāo)和鍵盤操作到窗口對(duì)話框和控件。PyWinAuto提供的API是對(duì)Windows標(biāo)準(zhǔn)控件的行為處理,例如指定窗口、鼠標(biāo)操作、鍵盤操作、獲取窗口或控件屬性,使用方便,且對(duì)中文也有很好的支持。
Pywinauto是實(shí)現(xiàn)Windows窗口程序自動(dòng)化的一把利器,它主要操作于Windows標(biāo)準(zhǔn)圖形界面。Pywinauto基于Pywin32,其最主要功能為對(duì)Windows標(biāo)準(zhǔn)控件的一系列動(dòng)作可編程處理,包括對(duì)窗口的指定、鼠標(biāo)或鍵盤操作、獲得控件屬性等等。相比起Pywin32,Pywinauto使用起來更方便穩(wěn)定,對(duì)中文的支持度也更好。
https://pywinauto.readthedocs.io/en/latest/code/pywinauto.keyboard.html#
PyAutoGUI
PyAutoGUI是Python的一個(gè)第三方庫(kù),可對(duì)GUI程序?qū)崿F(xiàn)自動(dòng)化測(cè)試。主要通過控制鼠標(biāo)和鍵盤,與其他應(yīng)用程序交互。PyAutoGUI可以在Windows、macOS和Linux系統(tǒng)上工作,支持Python2和Python3。
Pyautogui對(duì)鼠標(biāo)的移動(dòng)、點(diǎn)擊、拖拽,鍵盤按鍵輸入、按住操作,以及鼠標(biāo)+鍵盤的熱鍵同時(shí)按住等操作都能準(zhǔn)確模擬,可以說手能動(dòng)的都可以,并且簡(jiǎn)單方便。但由于控件的定位依賴于圖像匹配,所以得事先保存好控件的截圖,然后在操作時(shí)自動(dòng)截取屏幕,利用圖像匹配找到控件在屏幕的像素位置,再將鼠標(biāo)自動(dòng)移至控件處點(diǎn)擊。
Pyautogui自帶的圖像匹配函數(shù)精度不是很高,可以加入opencv中的匹配函數(shù)來代替,更加準(zhǔn)確方便。
鏈接: Keyboard Control Functions — PyAutoGUI documentation
pywinauto與pyautogui比較
Pyautogui是另一個(gè)常用的基于Python的GUI自動(dòng)化工具,能夠支持多個(gè)平臺(tái)。Pyautogui主要是利用程序自動(dòng)控制鼠標(biāo)和鍵盤操作。雖然Pyautogui和Pywinauto都是實(shí)現(xiàn)GUI 的自動(dòng)操作,但兩者的側(cè)重點(diǎn)不同。Pyautogui側(cè)重于鼠標(biāo)、鍵盤、截圖等功能,且是基于圖像匹配進(jìn)行定位的,而Pywinauto側(cè)重于對(duì)C/S系統(tǒng)的操作,雖然也有鍵盤和鼠標(biāo)的模擬操作,但核心上還是軟件上的操作更多。
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)錄制。
CodeUI Test是微軟自動(dòng)化測(cè)試的一個(gè)比較好的項(xiàng)目,它的原理是獲取到Windows窗口上的控件,然后針對(duì)控件的部分屬性進(jìn)行獲取和對(duì)比,模擬對(duì)控件進(jìn)行點(diǎn)擊、雙擊、右鍵點(diǎn)擊等事件。這樣可以錄制用戶測(cè)試用例的動(dòng)作,一次錄制完動(dòng)作,以后只需要運(yùn)行測(cè)試用例程序,即可自動(dòng)化測(cè)試。
注意:Code UI Test只能針對(duì)Window 程序。如果是C#編寫的將會(huì)更加有效。
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è)試工具。
TestWriter
TestWriter是一款0編碼自動(dòng)化測(cè)試工具,用戶可以通過統(tǒng)一圖形化界面輕松創(chuàng)建測(cè)試計(jì)劃,并驅(qū)動(dòng)執(zhí)行引擎完成自動(dòng)化測(cè)試任務(wù),有效降低了測(cè)試人員能力要求及腳本維護(hù)工作量,讓自動(dòng)化測(cè)試更簡(jiǎn)單,更專注于業(yè)務(wù)??蓽y(cè)web、andriod、ios平臺(tái)應(yīng)用。通過圖形化界面,對(duì)測(cè)試對(duì)象、測(cè)試步驟、用例等層層封裝映射,清晰理清業(yè)務(wù)關(guān)系。業(yè)務(wù)變動(dòng)、界面調(diào)整時(shí)僅需修改相應(yīng)業(yè)務(wù)庫(kù)內(nèi)容。支持分布式測(cè)試,通過擬定計(jì)劃,自動(dòng)匹配測(cè)試環(huán)境并分配執(zhí)行機(jī)器,無(wú)需測(cè)試人員干預(yù),輕松實(shí)現(xiàn)自動(dòng)定期回歸。引入了中間語(yǔ)言,讓自動(dòng)化測(cè)試的開發(fā)工作脫離具體引擎的限制,降低Selenium和QTP等自動(dòng)化工具的使用難度。實(shí)時(shí)查看執(zhí)行情況,自動(dòng)記錄測(cè)試結(jié)果,并對(duì)錯(cuò)誤步驟進(jìn)行問題分析及錯(cuò)誤時(shí)UI截圖。文章來源:http://www.zghlxwxcb.cn/news/detail-514230.html
QTP
全名HP QuickTest Professional software ,2012年12月6日發(fā)布11.5版本,并更名為Unified Functional TestingQTP是quicktest Professional的簡(jiǎn)稱,是一種自動(dòng)測(cè)試工具。使用QTP的目的是利用它來執(zhí)行重復(fù)的手動(dòng)測(cè)試,主要是用于回歸測(cè)試和測(cè)試同一軟件的新版本。
因此你在測(cè)試前要考慮好如何對(duì)應(yīng)用程序進(jìn)行測(cè)試,例如要測(cè)試那些功能、操作步驟、輸入數(shù)據(jù)和期望的輸出數(shù)據(jù)等
QuickTest針對(duì)的是GUI應(yīng)用程序,包括傳統(tǒng)的Windows應(yīng)用程序,以越來越流行的Web應(yīng)用。它可以覆蓋絕大多數(shù)的軟件開發(fā)技術(shù),簡(jiǎn)單高效,
并具備測(cè)試用例可重用的特點(diǎn)。其中包括:創(chuàng)建測(cè)試、插入檢查點(diǎn)、檢驗(yàn)數(shù)據(jù)、增強(qiáng)測(cè)試、運(yùn)行測(cè)試、分析結(jié)果和維護(hù)測(cè)試等方面。文章來源地址http://www.zghlxwxcb.cn/news/detail-514230.html
到了這里,關(guān)于windows桌面應(yīng)用程序UI自動(dòng)化工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!