1. 程式人生 > >uiautomator2任意操作Android自動化測試

uiautomator2任意操作Android自動化測試

簡介

uiautomator2 是一個Android UI自動化框架,支援Python編寫測試指令碼對裝置進行自動化。底層基於Google uiautomator,Google提供的uiautomator庫可以獲取螢幕上任意一個APP的任意一個控制元件屬性,並對其進行任意操作,但有兩個缺點:1. 測試指令碼只能使用Java語言 2. 測試指令碼必須每次被上傳到裝置上執行。 我們希望測試能夠用一個更指令碼化的語言,例如Python編寫,同時可以每次所見即所得地修改測試、執行測試。原理是在手機上運行了一個http伺服器,將uiautomator中的功能開放出來,然後再將這些http介面,封裝成Python庫。 uiautomator2專案是對xiaocong/uiautomator的增強,主要有以下部分:

  • 裝置和開發機可以脫離資料線,通過WiFi互聯(基於atx-agent)
  • 集成了openstf/minicap達到實時螢幕投頻,以及實時截圖
  • 集成了openstf/minitouch達到精確實時控制裝置
  • 修復了xiaocong/uiautomator經常性退出的問題
  • 程式碼進行了重構和精簡,方便維護
    Requirements: Android OS Version >= 4.4 Python >=2.7 || <= 3.6

安裝

下載安裝uiautomator2

# Since uiautomator2 is still under development, you have to add --pre to install the development version
pip install --upgrade --pre uiautomator2 # Or you can install directly from github source git clone https://github.com/openatx/uiautomator2 pip install -e uiautomator2

如果處理截圖,就安裝pillow

pip install pillow

初始化

部署相關守護程序到裝置,電腦連線上一個手機或多個手機, 確保adb已經新增到環境變數中,執行下面的命令會自動安裝本庫所需要的裝置端程式:uiautomator-server

atx-agentopenstf/minicapopenstf/minitouch
有時候init也會出錯,請參考手動Init指南

# init 所有的已經連線到電腦的裝置
python -m uiautomator2 init

安裝weditor(UI Inspector)

因為uiautomator是獨佔資源,所以當atx執行的時候uiautomatorviewer是不能用的,為了減少atx頻繁的啟停,我們開發了基於瀏覽器技術的weditor UI檢視器

pip install --pre -U weditor

連線到裝置

import uiautomator2 as u2

d = u2.connect('10.0.0.1') # alias for u2.connect_wifi('10.0.0.1')
print(d.info)

參考

https://github.com/openatx/uiautomator2