Pywinauto是基於Python開發的,用於自動化測試的腳本模塊,主要操作於Windows標准圖形界面。它可以允許你很容易的發送鼠標、鍵盤動作給Windows的對話框和控件。
其中,最主要功能為對windows標准控件的一系列動作可編程處理。包括對窗口的指定、鼠標或鍵盤操作、獲得控件屬性等等。程序的開始為對所需應用的啟 動或連接。獲得程序連接后,pywinauto通過窗口的名稱、類名、是否可見等屬性尋找匹配的窗口,進而通過類似方法尋找用戶所需的控件,並獲得相應的 句柄。之后,用戶可通過易理解的編程方式對指定控件進行相關操作的編程,包括鼠標點擊、鍵盤輸入、判斷控件間關系、獲取控件屬性等。
外結構:
Pywinauto是建立在CPython之上的python應用模塊,實現原理由C做底層實現,因此與JPython不能兼容。
Python for windows 模塊,使得windows api函數有了相應的python接口,其中的ctypes和win32api模塊為api函數的對應應用封裝了較為完善的接口集合。
Python for windows 模塊,使得windows api函數有了相應的python接口,其中的ctypes和win32api模塊為api函數的對應應用封裝了較為完善的接口集合。
內結構:
程序的入口及對指定窗口或控件的操作,定義在application.py中。其中Application類進行對應用的開啟和連接,WindowSpecification類自動映射到指定的窗口或控件上。
HwndWrapper?.py,win32_controls.py,menuwrapper.py,common_controls.py中為 Pywinauto對標准控件操作的定義。控件都由HwndWrapper類繼承而來,其中對控件共有的基本屬性進行了定義。在控件自己的定義中,對 HwndWrapper類的一些屬性進行了重載,同時也定義了具有自己特色的屬性和操作。對控件屬性值的獲取和操作定義在 handleprops.py,controlsproperties.py文件中。
Win32defines.py,win32functions.py,win32structures.py文件中,為pywinauto對底層函數操 作的定義和索引。其底層調用的是python的ctypes庫函數所提供的接口。Ctypes庫中封裝了系統所使用的C語言數據類型和windows api函數操作等模塊,並提供了相應的python語言接口,使用戶通過python可對系統進行操作。
HwndWrapper?.py,win32_controls.py,menuwrapper.py,common_controls.py中為 Pywinauto對標准控件操作的定義。控件都由HwndWrapper類繼承而來,其中對控件共有的基本屬性進行了定義。在控件自己的定義中,對 HwndWrapper類的一些屬性進行了重載,同時也定義了具有自己特色的屬性和操作。對控件屬性值的獲取和操作定義在 handleprops.py,controlsproperties.py文件中。
Win32defines.py,win32functions.py,win32structures.py文件中,為pywinauto對底層函數操 作的定義和索引。其底層調用的是python的ctypes庫函數所提供的接口。Ctypes庫中封裝了系統所使用的C語言數據類型和windows api函數操作等模塊,並提供了相應的python語言接口,使用戶通過python可對系統進行操作。
case組織:
我們采用Python的unittest模塊的基本結構,來組織自動化case。每一個大的功能模塊,為一個類,繼承與 unittest.TestCase。通過在測試類中添加函數的形式,對測試類中的每一個測試點(即case)進行代碼編寫。測試類中,一定要覆蓋的是 setUp()和tearDown()函數,作為每一個單元測試函數的入口和出口。Unittest提供TestSuite類來集合和組織測試類中的多個 測試函數。同時,提供了TextTestRunner類來運行TestSuite里的類,並返回通過、錯誤、失敗的測試數量以及運行時間。