APP自動化環(huán)境安裝(一)

環(huán)境安裝

Node.js
appium server-desktop
安卓ADT
appium python庫
模擬器(真機)

UiAutomator、UiAutomator2、Bootstrap的關(guān)系

首先來說下UiAutomator和bootstrap:

UiAutomator是Android自動化測試框架,是谷歌在Android4.1版本發(fā)布時推出的一款用Java編寫的UI測試框架。其最大的特點就是可以跨進程操作,我們可以使用UiAutomator框架提供的一些方便的API來對安卓應用進行一系列的自動化測試操作,如點擊、滑動、鍵盤輸入、長按以及常用的斷言方法等??梢蕴娲郧胺爆嵉氖止y試。

Bootstrap是Appium在初始化的時候推送到安卓手機上的一個UiAutomator測試腳本,該腳本的唯一一個測試方法所做的事情是在手機端開啟一個SocketServer(通信模塊),用來監(jiān)聽Appium從PC端過來的命令發(fā)送給UiAutomator來執(zhí)行處理。

Bootstrap是Appium在初始化的時候推送到安卓手機上的一個UiAutomator測試腳本,該腳本的唯一一個測試方 法所做的事情是在手機端開啟一個SocketServer(通信模塊),用來監(jiān)聽Appium從PC端過來的命令發(fā)送給 UiAutomator來執(zhí)行處理。


WebDriver script:
  我們的測試腳本(java or python)
Appium:
  會首先開啟一個監(jiān)聽4723端口的server,接收測試腳本發(fā)送過來的對應請求,再講對應的請求發(fā)送給中間件Bootstrap.jar(注意這里的請求不是整個腳本文件,而是對應的命令請求,比如:點擊一個元素就是一條請求)

Bootstrap.jar:
  監(jiān)聽4724端口由appium發(fā)送過來的相關(guān)請求,并且將請求轉(zhuǎn)換成UiAutomator可以識別的命令發(fā)給UiAutomator進行處理

UiAutomator2:
appium在最近有加入了對UiAutomator2(也可稱為UiAutomator V2)的支持實現(xiàn)Android端自動化,原理同之前的UiAutomator+Bootstrap有很大的不同:

為了能夠支持UiAutomator2,Appium引入了appium-uiautomator2-server(類似driver與Selenium關(guān)系)
以下是其官網(wǎng)的wiki介紹,提供官網(wǎng)WIKI
https://github.com/appium/appium-uiautomator2-server/wiki
ps:在獲取到toast信息的時候需要將automationName設置成UiAutomator2,就是因為在UiAutomator2上新增了AccessibilityService服務,可以實現(xiàn)Toast的獲取。

以下是其使用原理圖:

WebDriver script:

不用多說,就是我們的執(zhí)行腳本

Appium:

客戶端傳遞desired capabilities屬性配置給Appium Server來創(chuàng)建一個會話,Appium Server會調(diào)用appium-uiautomator2-driver,同時將UiAutomator2 server的兩個apk安裝到測試設備上

1、appium-uiautomator2-server-vx.x.x.APK

2、appium-uiautomator2-server-debug-androidTest.apk

UiAutomator2 server兩個apk的作用:

1、UiAutomator2 驅(qū)動模塊,負責創(chuàng)建會話,安裝UiAutomator2-server.apk到設備上,開啟Netty(這是一個通信框架,相當于Bootstrap使用的SocketServer升級版本)

2、UiAutomator2服務器模塊,當驅(qū)動模塊創(chuàng)初始化完畢,服務器就會監(jiān)聽PC端Appium發(fā)送過來的請求,將請求發(fā)送給真正底層的UiAutomator2。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容