1. 程式人生 > >【Android測試】【第十四節】Appium——簡述

【Android測試】【第十四節】Appium——簡述

ios 選擇 ive boot and tro jar appium tomato

前言


  同樣的,這一篇我要介紹的也是一款UI自動化工具,地址:http://appium.io/

  第三方(非谷歌)研發的開源測試工具,說到這裏也許有人會問 “為什麽已經介紹了Uiautomator還要介紹它呢?”,我們就說說Appium有哪些不一樣的地方:

    1、appium可以測試原生的、混合的、或者是移動端的web項目;

    2、appium不僅支持測試Android應用,還可以測試ios;

    3、appium跨平臺,可以運行在Windows或者Linux上;

    4、appium支持多種語言,你可以用你自己熟悉的語言,如java、ruby、python等來完成你的腳本。

  它的底層架構是:

技術分享圖片

  網上找了兩段解釋,說的應該比較清楚:

    一、Appium采用底層驅動商提供統一API,就是WebDriver API。

    WebDriver(也稱Selenium WebDriver)其實是一個C/S架構的協議,叫做JSON Wire Protocol。通過這個協議,用任何語言寫成的客戶端都可以發送HTTP請求給服務器。這就意味著你可以自由選擇你想要使用的測試框架和執行器,也可以將任何包含HTTP客戶端的庫文件加入到你的代碼中。換句話說,Appium的WebDriver不是一個技術上的測試框架,而是一個自動化庫。

    二、在Android端,WebDriver利用Bootstrap.js,最後通過調?用UiAutomator的命令,實現App的自動化測試。UiAutomator測試框架是Android SDK?自帶的App UI自動化測試Java庫。另外由於UiAutomator對H5的?支持有限,appium引入了chromedriver來實現基於H5的自動化。

  技術分享圖片
    1.左邊的WebDriver script是我們的selenium測試腳本
    2.中間是起的Appium的服務,Appium在這邊起了一個Server(4723端口),跟seleniumWebdriver測試框架類似,Appium?支持標準的WebDriver JSONWireProtocol 。在這裏提供了一套web服務,Appium Server接收web driver 標準請求,解析請求內容,調?用對應的框架響應操作。如:腳本發送一個點擊按鈕的請求給appium server,
    3. appium server會把請求轉發給中間件Bootstrap.jar ,它是用java寫的,安裝在手機上.Bootstrap 接收appium 的命令(4724端口),最終通過調?用UiAutomator的命令來實現。
    4.最後執?行的結果由Bootstrap返回給appium server
    5.另外,appium還用到了chromedriver來?支持基於H5(webview)的測試。

  了解完基本的一些之後,就可以環境搭建了。

【Android測試】【第十四節】Appium——簡述