目錄
一、簡介
二、支持平臺及語言
三、工作原理
四、安裝
一、簡介
uiautomator2是一個python庫,用于Android的UI自動化測試,其底層基于Google uiautomator,Google提供的uiautomator庫可以獲取屏幕上任意一個APP的任意一個控件屬性,并對其進行任意操作。
GitHub地址:GitHub - openatx/uiautomator2: Android Uiautomator2 Python Wrapper
二、支持平臺及語言
python-uiautomator2封裝了谷歌自帶的uiautomator2測試框架,提供便利的python接口。他允許測試人員直接在PC上編寫Python的測試代碼,操作手機應用,完成自動化,大大提高了自動化代碼編寫的效率。
三、工作原理
如圖所示,python-uiautomator2主要分為兩個部分,python客戶端,移動設備。
- python端:運行腳本,并向移動設備發送HTTP請求
- 移動設備:移動設備上運行了封裝了uiautomator2的HTTP服務,解析收到的請求,并轉化成uiautomator2的代碼。
整個過程:
- 在移動設備上安裝atx-agent(守護進程),隨后atx-agent啟動uiautomator2服務(默認7912端口)進行監聽。
- 在PC上編寫測試腳本并執行(相當于發送HTTP請求到移動設備的server端)。
- 移動設備通過WIFI或USB接收到PC上發來的HTTP請求,執行制定的操作。
四、安裝
(1)在大多數情況下,使用pip進行安裝是最簡單也是最直接的方法。你只需要在命令行中執行以下命令:
pip3 install uiautomator2
(2)執行完畢后,uiautomator2就會被安裝到你的Python環境中。你可以通過運行下列命令來檢查安裝是否成功。
python -m uiautomator2 init
執行“python -m uiautomator2 init”命令,會自動往手機上安裝一堆東西:
- app-uiautomator.apk
- app-uiautomator-test.apk
- atx-agent
- minicap
- minitouch
當PC或Linux服務器連接了多臺adb device的情況下,“python -m uiautomator2 init”默認初始化的是所有設備,若指定設備初始化,則需使用“--serial”參數:
python -m uiautomator2 init --serial $SERIAL
# $SERIAL為手機序列號,可通過adb devices查看
(3)然后,新建一個py文件,通過運行代碼來查看環境是否配置成功。
注意:在運行這段代碼之前,需要確保 Android 設備已經通過 USB 連接到計算機,并且設備已經開啟了 USB 調試模式。
# 使用uiautomator2進行設備連接
import uiautomator2 as u2d = u2.connect() # connect to device
print(d.info)
這行代碼調用 uiautomator2 對象的 connect() 方法來嘗試連接到一臺 Android 設備,并將連接后的設備對象賦值給變量 driver 。connect() 方法默認會嘗試連接通過 USB 連接到計算機的第一臺 Android 設備。如果需要連接指定序列號的設備,可以在 connect 方法中傳入設備序列號。
設備對象 driver 的 info 屬性,該屬性包含了設備的各種信息,如屏幕分辨率、電池電量、系統版本等。
運行代碼,這時看到類似下面的輸出,就可以正式開始用我們這個庫了。
OK,安裝到此就完成了。