Appium簡介

Appium簡介

Appium是一個開源的、跨平臺的測試框架,可以用來測試Native App、混合應用、移動Web應用(H5應用)。

 

Appium堅持的測試理念:

       1. 無需用戶對APP進行任何修改或者重新編譯,App應該Born to be automated。

       2. 不應該限制用戶只能使用特定的語言或者框架來編寫和執行測試。

       3. 移動測試框架的API應該是穩定的,合理的。不應對自動化API 反覆的造輪子。

       4. 移動測試框架應該是開源的,包括“精神和肉體”。

 

目前,Appium支持PythonJavaScriptObjective CJavaRubyphpc#。MQC目前首先選擇支持Python語言和Java語言。其他語言將會陸續在MQC上得到支持。您也可以告訴我們您希望下一個被支持的語言。

 

Appium的架構是如何設計的?

事實上,Appium 真正的工作引擎全部是第三方自動化框架。這樣,就不需在你的應用裏植入其他任何代碼。也就是說你測試使用的應用和最終發佈的應用完全一致。使用以下的第三方框架如下:

      1. IOS: 蘋果的 UIAutomation

      2. Android 4.2+: Google’s UiAutomator

      3. Android 2.3+: Google’s Instrumentation. (由單獨的項目Selendroid提供支持)

 

Appium把這些第三方框架封裝成一套 WebDriver API。(協議格式參見 JSON Wire Protocol)。使用這種CS架構,Appium就可以通過任何語言來封裝API調用,從而提供不同語言的客戶端給不同的人員。

 

Appium 的核心是一個 web 服務器,它提供了一套 REST 的接口。它收到客戶端的連接,監聽到命令,接着在移動設備上執行這些命令,然後將執行結果放在 HTTP響應中返還給客戶端。事實上,這種客戶端/服務端的架構給予了許多的可能性:比如我們可以使用任何實現了該客戶端的語言來寫我們的測試代碼。比如我們可以把服務端放在不同 的機器上。

 

WebDriver 的Session概念

自動化始終圍繞一個session進行,客戶端初始化一個seesion(會話)來與服務端交互,不同的語言有不同的實現方式,但是他們最終都是發送爲一個POST請求給服務端,請求中包含一個JSON對象,被稱作“desired capabilities”。此時,服務端就會開啓一個自動化的 session,然後返回一個 session ID,session ID將會被用戶發送後續的命令。

 

什麼是Desired Capabilities?

Desired capabilities 是一些鍵值對的集合 (比如,一個 map 或者 hash),客戶端將這些鍵值對發給服務端,告訴服務端我們想要怎麼測試。比如,我們可以把platformName capability 設置爲 iOS,告訴 Appium 服務端,我們想要一個iOS 的 session,而不是一個 Android 的。完整列表參見 capabilities 文檔

 

環境搭建

搭建Node.js環境

 

1. Node.js的官網下載安裝Node.js 和 npm(Node.js的包管理工具)。

    注:安裝Node.js的版本要求0.10或以上,建議安裝最新的穩定版。

           Linux和Mac OS X用戶安裝時,不要使用sudo。 如果一定要使用sudo,必須保證Node.js的所有者和Appium包的所有者保持一致。具體方法,在下面“安裝Appium”章節會有介紹。

           

安裝Appium

1. 請先下載Node.js的Appium.zip 這個包。

2. 然後在命令行中執行:npm config get prefix這個命令。OSX 和Linux得到輸出,比如/usr或者Windows得到輸出,比如C:\Users\xxxx\AppData\Roaming\npm。 這樣就可以找到Node.js的一個全局模塊的根目錄。

3. 結合剛剛找到的Node.js全局的package根目錄,我們可以找到node_modules目錄位置:OS X和Linux對應的位置爲:/usr/lib/node_modules ;Windows對應的位置爲:C:\Users\xxxx\AppData\Roaming\npm\node_modules

4. 解壓下載的Appium.zip到剛剛找到的node_modules目錄。

5. Windows用戶在node_modules同級目錄中,創建appium.cmd文件,並寫入以下代碼:

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\node_modules\appium\bin\appium.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\node_modules\appium\bin\appium.js" %*
)

  Linux/Mac OS用戶,給node_modules/appium/bin/appium.js 增加可執行權限(chmod +x node_modules/appium/bin/appium.js),然後執行命令(可能需要sudo):

ln -s  /FULL--PATH--TO/node_modules/appium/bin/appium.js  /usr/bin/appium

  如果依然出現無法創建appium命令的情況,可以直接運行: node  node_modules/appium/bin/appium.js

 

驗證安裝。

在命令行中執行:appium -p 12345(在本地啓動Appium Server並且監聽端口號12345)。出現如下輸出,說明Appium安裝正常。否則,請到我們的旺旺交流羣(羣號:335334143)中反饋。


info: Welcome to Appium v1.3.7 (REV 72fbfaa116d3d9f6a862600ee99cf02f6d0e2182)
info: Appium REST http interface listener started on 0.0.0.0:12345
info: [debug] Non-default server args: {"port":12345}
info: Console LogLevel: debug

注意:請確保安裝Node.js的用戶和解壓後的appium文件夾的所有者一致。如果不一致,Linux和OS X用戶請用chown  -R  ${user}  appium 修改appium文件夾的所有者;Windows用戶右鍵,選擇“屬性”修改。將”${user}”替換爲相應的用戶名。

 

安裝Appium python客戶端

1. 請先確保安裝了Python(最好版本爲2.7.x)。如果沒有安裝,請到Python官網下載安裝。

2. 參考https://pypi.python.org/pypi/setuptools文檔,安裝python setuptools 。

3. 下載Appium-python-client.zip

4. 將文件夾解壓到任意位置,然後使用命令行進入到解壓後的文件夾目錄,執行命令:python setup.py install(可能需要sudo)

 

其他環境要求

1. IOS

  Mac OS X 10.7 or higher, 建議10.9.2

  XCode >= 4.6.3, 建議5.1.1

  Apple Developer Tools

2. Android

  Android SDK API >= 17 (建議18/19)

其他環境問題請參考:linuxosxwindow

發佈了16 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章