標籤:top sdk strong test 增加 支援 hone 自己 標準
摘自:http://www.testclass.net/appium/appium-base-summary/
1、特點
appium 是一個自動化測試開源工具,支援 iOS 平台和 Android 平台上的原生應用,web應用和混合應用。
- “移動原生應用”是指那些用iOS或者 Android SDK 寫的應用(Application簡稱app)。
- “移動web應用”是指使用行動瀏覽器訪問的應用(appium支援iOS上的Safari和Android上的 Chrome)。
- “混合應用”是指原生代碼封裝網頁視圖——原生代碼和 web 內容互動。比如,像 Phonegap,可以協助開發人員使用網頁技術開發應用,然後用原生代碼封裝,這些就是混合應用。
重要的是,appium是一個跨平台的工具:它允許測試人員在不同的平台(iOS,Android)使用同一套API來寫自動化測試指令碼,這樣大大增加了iOS和Android測試套件間代碼的複用性。
2、appium與Selenium
appium類庫封裝了標準Selenium用戶端類庫,為使用者提供所有常見的JSON格式selenium命令以及額外的行動裝置控制相關的命令,如多點觸控手勢和螢幕朝向。
appium用戶端類庫實現了Mobile JSON Wire Protocol(一個標準協議的官方擴充草稿)和W3C WebDriver spec(一個傳輸不可預知的自動化協議,該協議定義了MultiAction 介面)的元素。
appium服務端定義了官方協議的擴充,為appium 使用者提供了方便的介面來執行各種裝置動作,例如在測試過程中安裝/卸載App。這就是為什麼我們需要appium特定的用戶端,而不是通用的Selenium 用戶端。當然,appium 用戶端類庫只是增加了一些功能,而實際上這些功能就是簡單的擴充了Selenium 用戶端,所以他們仍然可以用來運行通用的Selenium會話。
3、支援多平台、多語言
appium是跨平台的,可以用在OSX,Windows以及Linux案頭系統上運行。
appium選擇了Client/Server的設計模式。只要client能夠發送http請求給server,那麼的話client用什麼語言來實現都是可以的,這就是appium及Selenium(WebDriver)如何做到支援多語言的原因;
appium擴充了WebDriver的協議,沒有自己重新去實現一套。這樣的好處是以前的WebDriver API能夠直接被繼承過來,以前的Selenium(WebDriver)各種語言的binding都可以拿來就用,省去了為每種語言開發一個client的工作量;
語言/架構 |
Github地址 |
Python |
https://github.com/appium/python-client |
Java |
https://github.com/appium/java-client |
4、appium工作原理
在安裝和介紹appium之前,非常有必要介紹一下appium是如何工作的。
通過上面一張圖簡單展示了appium的工具原理。
首先,appium支援多語言,因為它針對流的幾種語言分別開發的相應的appium庫。好處就是我們可以選擇自己熟悉的語言編寫appium指令碼。
其次,appium支援多平台,包括MAC和Windows。它針對這兩大平台開發了appium-Server。
最後,appium又同時支援Android 和 iOS兩個作業系統。
這就使得appium變得非常靈活。
當我在MAC平台上,通過Python(python-client )編寫了一個appium自動化指令碼並執行,請求會首先到 appium.dum (MAC下的appium-Server),appium-Server通過解析,驅動iOS裝置來執行appium自動化指令碼。或者,我在Windows平台上,通過Java( java-client )編寫了一個appium自動化指令碼並執行,請求會首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通過解析,驅動Android虛擬機器或真機來執行appium指令碼。
所以,你會看到appium的強大之處就在於此。
5、你都需要安裝什嗎?
- appium client: Appium-Python-client
- appium Server
- 測試回合環境
一個Android模擬器,或 一個 Android 手機,或 一台 iPhone 手機
appium新手入門(1)—— appium介紹