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


 版權聲明:本文出自胖喵~的博客,轉載必須注明出處。

    轉載請注明出處:http://www.cnblogs.com/by-dream/p/5124340.html

 

 

前言


  同樣的,這一篇我要介紹的也是一款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)的測試。

 

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

 

 

環境搭建


  給我的感覺是Appium的腳本並沒有多么的難寫,但是它的環境搭建絕對是特別復雜的。反正搭建過程我是用了很久。下面是我過程中的一些截圖,部分地方我會進行說明:

  使用npm安裝appium:

  檢查appium所需要的環境是否可以了:

  這里中了一槍,配置環境變量后面不用分號

  安裝python:

 

 

  啟動客戶端:

 

 

 

 

 

 

運行case


  1、打開cmd,輸入Appium

  2、寫如下腳本

from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

el = driver.find_element_by_android_uiautomator('text("7")')
el.click()
e2 = driver.find_element_by_android_uiautomator('text("+")')
e2.click()
e3 = driver.find_element_by_android_uiautomator('text("8")')
e3.click()
e3 = driver.find_element_by_android_uiautomator('text("=")')
e3.click()

  3、直接運行腳本,即可看到操作計算器的步驟

 

  Appium個人還是不太習慣用,因為寫腳本的方法其實也是類似Uiautomator,因此沒介紹篇幅較短,只是簡單的體驗了一把。


免責聲明!

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



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