(學一個東西,總的知道它支持什麼。爲何要選擇它吧?因此我就去看github上的介紹了。發現你們介紹的來源大多來自於此)
Appium是一個開源的自動化框架,是跨平臺的,容許全部平臺使用同一套API來編寫腳本
1、支持的平臺
ios
Android
FirefoxOS
支持native、web,hybride應用
Appium對iOS和Android的支持仍是有一些區別的,好比下面的表
支持項 |
ios |
Android |
版本號 |
6.一、7.0、7.1 |
Android2.3以上 |
支持設備 |
iPhone和ipad模擬器及真機 |
Android模擬器和真機 |
是否支持原生應用 |
支持 |
支持 |
是否支持內置移動瀏覽器 |
支持。真機須要安裝ios-webkit-remote-debugger,且不支持Safari的原生界面 |
支持(除了使用Selendroid後臺運行的狀況)
chrome須要安裝Chromedriver
|
是否支持同時在多個設備上進行自動化 |
不支持 |
支持,可是須要經過加參數開啓另外一個端口來實現。例如`--port`,`--bootstrap-port`(或者`--selendroid-port`)或者`--chromedriver-port`。 |
是否支持在同一個session中執行多個應用的自動化 |
不支持 |
支持(除了使用Selendroid後臺運行的狀況) |
是否支持第三方提供應用 |
只支持模擬器上少許的第三方應用 |
支持(可是不支持Selendroid後臺運行的場景) |
是否支持自定義的、非標準UI控件的自動化 |
僅支持不多一部分 |
不支持 |
2、Appium的一些優勢
1.不須要修改或編譯app,使用各平臺上標準的自動化API
2.支持多種腳本語言,下載個對應的client包便可。支持Java,Objective-C,JavaScript,PHP,Python,Ruby,C#,Clojure,Perl
3.開源自動化框架,全部平臺使用同一套API
3、Appium的設計
Appium分爲server和client端,實現UI自動化的過程其實是client發送http請求到server,而後server將請求發送到手機。經過ios和Android自帶的UI自動化工具進行操做,而後將結果回傳給server,server再發給client。
Appium實際使用的自動化框架以下:
ios:ios的UIAutomation
Android 4.2+:Google的UIAutomator
Android 2.3+:Google的Instrumentation(實際由Selendroid支持)
說明:由於我也剛開始學習Appium,因此可能有理解不對的地方,但願你們能夠指正
Android的過程能夠參考下面這篇文章:
4、Appium的一些概念
Session
客戶端初始化一個Session與服務端交互,不一樣的語言有不一樣的實現方式。可是都是經過發送一個post請求給服務端,請求中包含「desired capabilities」的JSON對象,這時服務端會開啓一個Session並返回一個Session ID,Session ID將被用在後續的命令中
Desired Capabilities
desired capabilities是一個JSON對象,包含要測試的對象的具體信息,告訴服務端咱們要怎麼測試,具體的選項見下面連接
Appium.app,Appium.exe
提供了GUI封裝的Appium服務端下載,封裝了Appium須要的全部依賴,不須要安裝Node.js,還包括了Inspector工具能夠查看界面元素
概念參考文檔: