『與善仁』Appium基礎 — 14、Appium測試環境搭建


1、Appium測試環境搭建整體思路

(1)Android測試環境搭建

Android測試環境需要搭建三個環境,JavaAndroidSDKAndroid模擬器
為什么要安裝這三個環境?

  • Java:Android的應用程序層使用的語言是Java,所以需要使用Java環境。
  • AndroidSDK:Android SDK給你提供開發、測試所必須的Android API類庫
  • Android模擬器:實際上就是一台手機,方便我們給大家展示效果。

(2)Appium測試環境搭建

Appium測試環境需要搭建:

  • Appium Server
    是Appium的核心,提供了一組REST API的Web服務器。
    Appium收到客戶端的連接、監控命令,之后在移動設備上執行這些命令,最后把執行結果放在HTTP響應中返回給客戶端。
    可以通過Node.js安裝,也可以通過Appium Desktop啟動Appium Server服務。
  • Appium Clients
    Appium官方提供了一套Appium client,涵蓋多種語言Ruby/Java/Python等,
    在測試的時候,一般要使用這些client庫去替換原生的webdriver庫。
    讓我們可以更方便的寫出可讀性更好的測試用例。
  • Devices
    就是我們的移動設備,可以是真實的手機,或者是電腦上的Android模擬器。
    (Android模擬器我們在上一步就完成了)

(3)測試腳本語言的環境搭建

例如:Pyhton、Java等開發環境。

要使用Pyhton語言寫我們的測試腳本,就搭建Python語言的開發環境,包括開發工具。

要使用Java語言寫我們的測試腳本,就搭建Java語言的開發環境,包括開發工具。

2、Appium在Android端和IOS端的工作流程

(1)Android端

在Android端,Appium基於WebDriver協議,利用Bootstrap.jar,最后通過調⽤用UiAutomator的命令,實現App的自動化測試。

UiAutomator測試框架是Android SDK自帶的App UI自動化測試Java庫。

另外由於UiAutomator對H5的支持有限,Appium引入了chromedriver以及safaridriver等來實現基於H5的自動化。

Appium 在Android端工作流:

  1. client端也就是我們test script(webdriver測試腳本)。
  2. 中間是起動的Appium的服務,Appium在服務端起了一個Server(4723端口),跟Selenium Webdriver測試框架類似, Appium支持標准的WebDriver JSON Wire Protocol
    在這里提供它提供了一套REST的接口,Appium Server接收webdriver client標准rest請求,解析請求內容,調用對應的框架響應操作。
  3. Appium Server會把請求轉發給中間件Bootstrap.jar ,它是用Java寫的,安裝在手機上的Bootstrap監聽4724端口並接收Appium的命令,最終通過調⽤用UiAutomator的命令來實現。
  4. 最后Bootstrap將執行的結果返回給Appium Server。
  5. Appium Server再將結果返回給Appium Client。

(2)iOS端

在iOS端,Appium同樣使用WebDriver的一套協議。

與Android端測試框架不同的是,Appium iOS封裝了Apple的Instruments框架,主要用了Instrument里的UI Automation(Apple的自動化測試框架),然后在設備中注入bootstrap.js進行監聽。

Appium 在iOS端工作流:

  1. Client端 依然是test script(webdriver測試腳本)。
  2. 中間是起動的是Appium的服務,Appium在服務端起了一個Server(4723端口),跟Selenium Webdriver測試框架類似,Appium支持標准的WebDriver JSON Wire Protocol
    在這里提供它提供了一套REST的接口,Appium Server接收webdriver client標准rest請求,解析請求內容,調用對應的框架響應操作。
  3. Appium Server調用instruments.js啟動⼀一個socket server,同時分出一個子進程運行instruments.app,將bootstrap.js(一個UIAutomation腳本)注入到device用於和外界進行交互
  4. 最后Bootstrap.js將執行的結果返回給Appium Server
  5. Appium Server再將結果返回給 Appium Client。

(3)總結

所以我們可以看到Android與iOS區別在於Appium將請求轉發到bootstrap.js或者bootstrap.jar

然后由bootstrap驅動UIAutomationUiAutomator去Devices上完成具體的動作。

如下圖所示:

image

3、ADB執行原理和Appium執行原理

(1)ADB原理

ADB原理簡易模型圖 (跟着12345步驟走),如下圖所示:

image

(2)ADB實際操作原理參考圖

如下圖所示:

image

(3)Appium原理

Appium簡易原理圖(跟着序號12345678走),如下圖所示:

image

(4)Appium原理實際參考圖( 結合簡易原理圖 )

如下圖所示:

image

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM