uiautomator2任意操作Android自動化測試
阿新 • • 發佈:2018-12-03
簡介
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
有時候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)