uiautomator2環(huán)境搭建(基于python)

uiautomator2

uiautomator2是一個可以使用Python對Android設(shè)備進行UI自動化的庫咧虎。其底層基于Google uiautomator河狐,Google提供的uiautomator庫可以獲取屏幕上任意一個APP的任意一個控件屬性,并對其進行任意操作剿干,但有兩個缺點:1. 測試腳本只能使用Java語言 2. 測試腳本必須每次被上傳到設(shè)備上運行章咧。 我們希望測試能夠用一個更腳本化的語言验靡,例如Python編寫劲弦,同時可以每次所見即所得地修改測試耳标、運行測試。這里要非常感謝 Xiaocong He (@xiaocong)邑跪,他將這個想法實現(xiàn)了出來(見xiaocong/uiautomator)麻捻,原理是在手機上運行了一個http服務(wù)器纲仍,將uiautomator中的功能開放出來,然后再將這些http接口贸毕,封裝成Python庫。

我們的uiautomator2項目是對xiaocong/uiautomator的增強夜赵,主要有以下部分:

1. 設(shè)備和開發(fā)機可以脫離數(shù)據(jù)線明棍,通過WiFi互聯(lián)(基于atx-agent

2. 集成了openstf/minicap加快截圖速度

3. 集成了openstf/minitouch達到精確實時控制設(shè)備

4. 修復(fù)了xiaocong/uiautomator經(jīng)常性退出的問題

5. 代碼進行了重構(gòu)和精簡,方便維護


工作原理


如圖所示寇僧,python-uiautomator2主要分為兩個部分摊腋,python客戶端,移動設(shè)備

python端:運行腳本嘁傀,并向移動設(shè)備發(fā)送HTTP請求

移動設(shè)備?:移動設(shè)備上運行了封裝了uiautomator2的HTTP服務(wù)兴蒸,解析收到的請求,并轉(zhuǎn)化成uiautomator2的代碼细办。

整個過程

1. 在移動設(shè)備上安裝atx-agent(守護進程), 隨后atx-agent啟動uiautomator2服務(wù)(默認7912端口)進行監(jiān)聽

2. 在PC上編寫測試腳本并執(zhí)行(相當(dāng)于發(fā)送HTTP請求到移動設(shè)備的server端)

3. 移動設(shè)備通過WIFI或USB接收到PC上發(fā)來的HTTP請求橙凳,執(zhí)行制定的操作


環(huán)境搭建

安裝Python

如命令行可以執(zhí)行python,則跳過此步驟

在python官網(wǎng)下載python笑撞,并配置環(huán)境變量岛啸,可點擊查看詳細教程


安裝adb

如命令行可以執(zhí)行adb devices,則跳過此步驟

從谷歌官網(wǎng)下載Android Platform Tools?茴肥,?解壓坚踩,并加包含adb.exe的目錄加入到系統(tǒng)的PATH中。


安裝python-uiautomator2

命令行窗口輸入:

pip install -U --pre uiautomator2

經(jīng)過短暫的等待瓤狐,就安裝好了瞬铸。部分情況可以因為中國互聯(lián)網(wǎng)防火墻的原因,安裝不了础锐,這是可以試試用國內(nèi)的pypi鏡像

pip install -U --pre uiautomator2 -i https://pypi.doubanio.com/simple


此外嗓节,還需要pillow來處理截圖數(shù)據(jù)

命令行窗口輸入:

pip install pillow


設(shè)備安裝atx-agent(將相關(guān)聯(lián)的守護進程部署到設(shè)備上)

電腦連接上一個手機或多個手機, 確保adb已經(jīng)添加到環(huán)境變量中,執(zhí)行下面的命令會自動安裝本庫所需要的設(shè)備端程序:uiautomator-server 郁稍、atx-agent赦政、openstf/minicap、openstf/minitouch首先將設(shè)備插入到手機上耀怜,如果提示信任開發(fā)者選項就點擊確認恢着。

命令行窗口輸入:

adb devices

python -m uiautomator2 init


安裝過程中會聯(lián)網(wǎng)下載組件,安裝提示success即可财破。


以上環(huán)境搭建基本完成


確定環(huán)境是否搭建成功

接下來看一段Python腳本掰派,運行成功時手機會彈出一句:Hello world, 顯示時間為3秒



應(yīng)用及操作

調(diào)用uiautomator2的過程

1. 配置手機設(shè)備參數(shù)左痢,設(shè)置具體操作的是哪一臺手機

2. 抓取手機上應(yīng)用的控件靡羡,制定對應(yīng)的控件來進行操作

3. 對抓取到的控件進行操作系洛,比如點擊、填寫參數(shù)等略步。


配置手機設(shè)備參數(shù)

python-uiautomator2連接手機的方式有兩種描扯,一種是通過WIFI,另外一種是通過USB趟薄。兩種方法各有優(yōu)缺點绽诚。WIFI最便利的地方要數(shù)可以不用連接數(shù)據(jù)線,USB則可以用在PC和手機網(wǎng)絡(luò)不在一個網(wǎng)段用不了的情況杭煎。

1. 使用WIFI連接

手機獲取到手機的IP恩够,并確保電腦可以PING通手機。手機的IP可以在設(shè)置-WIFI設(shè)置里面獲取到羡铲。比如手機的IP是192.168.0.100蜂桶,連接設(shè)備的代碼為

import?uiautomator2?as?u2

d?=?u2.connect('192.168.0.100')

2. 使用USB連接

手機的序列號可以通過adb devices獲取到,假設(shè)序列號是123456f也切,連接代碼為

import?uiautomator2?as?u2

d?=?u2.connect_usb('123456f')

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扑媚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贾费,更是在濱河造成了極大的恐慌钦购,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件褂萧,死亡現(xiàn)場離奇詭異押桃,居然都是意外死亡,警方通過查閱死者的電腦和手機导犹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門唱凯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谎痢,你說我怎么就攤上這事磕昼。” “怎么了节猿?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵票从,是天一觀的道長。 經(jīng)常有香客問我滨嘱,道長峰鄙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任太雨,我火速辦了婚禮吟榴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘囊扳。我一直安慰自己吩翻,他們只是感情好兜看,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狭瞎,像睡著了一般细移。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脚作,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天葫哗,我揣著相機與錄音,去河邊找鬼球涛。 笑死,一個胖子當(dāng)著我的面吹牛校镐,可吹牛的內(nèi)容都是我干的亿扁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鸟廓,長吁一口氣:“原來是場噩夢啊……” “哼从祝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起引谜,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤牍陌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后员咽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毒涧,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年贝室,在試婚紗的時候發(fā)現(xiàn)自己被綠了契讲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡滑频,死狀恐怖捡偏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情峡迷,我是刑警寧澤银伟,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站绘搞,受9級特大地震影響彤避,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜看杭,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一忠藤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧楼雹,春花似錦模孩、人聲如沸尖阔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽介却。三九已至,卻和暖如春块茁,著一層夾襖步出監(jiān)牢的瞬間齿坷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工数焊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留永淌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓佩耳,卻偏偏與公主長得像遂蛀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子干厚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容