Appium筆記(一) 丶Appium的自我介紹

1、我是誰,個人特色是什麼php

  Appium是一款開源測試自動化框架,可用於原生、混合移動Web應用程序。它使用WebDriver協議驅動iOS,Android和Windows應用程序。重要的是,Appium是「跨平臺」的:它容許您使用相同的API針對多個平臺(iOS,Android,Windows)編寫測試。這使得iOS,Android和Windows測試套件之間的代碼重用成爲可能。 html

  • 「原生應用」是指那些用iOS或者 Android SDK 寫的應用(Application簡稱app)。java

  • 「移動web應用」是指使用移動瀏覽器訪問的應用(appium支持iOS上的Safari和Android上的 Chrome)。python

  • 「混合應用」是指原生代碼封裝網頁視圖——原生代碼和 web 內容交互。好比,像 Phonegap,能夠幫助開發者使用網頁技術開發應用,而後用原生代碼封裝,這些就是混合應用。git

   Appium哲學github

    根據如下四條原則概述的理念,Appium的設計旨在知足移動自動化需求:web

    1. 您沒必要從新編譯您的應用或以任何方式對其進行修改以實現自動化。
    2. 你不該該被鎖定到特定的語言或框架來編寫和運行你的測試。
    3. 當涉及到自動化API時,移動自動化框架不該該重蹈覆轍。
    4. 一個移動自動化框架應該是開放源代碼,在精神和實踐以及名義上!

  支持多平臺、多語言objective-c

    Appium是跨平臺的,能夠用在OSX,Windows以及Linux桌面系統上運行。編程

    Appium選擇了Client/Server的設計模式。只要Client可以發送http請求給server,那麼的話Client用什麼語言來實現都是能夠的,這就是Appium及Selenium(WebDriver)如何作到支持多語言的緣由;設計模式

    Appium擴展了WebDriver的協議,沒有本身從新去實現一套。這樣的好處是之前的WebDriver API可以直接被繼承過來,之前的Selenium(WebDriver)各類語言的Building均可以拿來就用,省去了爲每種語言開發一個Client的工做量;

語言/框架 Github地址
Python https://github.com/appium/python-client
Ruby  https://github.com/appium/ruby_lib
Java https://github.com/appium/java-client
JavaScript (Node.js) https://github.com/admc/wd
Objective C https://github.com/appium/selenium-objective-c
PHP https://github.com/appium/php-client
C# (.NET) https://github.com/appium/appium-dotnet-driver
RobotFramework https://github.com/jollychang/robotframework-appiumlibrary

 

2、我和selenium的關係

Appium類庫封裝了標準Selenium客戶端類庫,爲用戶提供全部常見的JSON格式selenium命令以及額外的移動設備控制相關的命令,如多點觸控手勢和屏幕朝向。

Appium客戶端類庫實現了Mobile JSON Wire Protocol(一個標準協議的官方擴展草稿)和W3C WebDriver spec(一個傳輸不可預知的自動化協議,該協議定義了MultiAction 接口)的元素。

Appium服務端定義了官方協議的擴展,爲appium 用戶提供了方便的接口來執行各類設備動做,例如在測試過程當中安裝/卸載App。這就是爲何咱們須要appium特定的客戶端,而不是通用的Selenium 客戶端。固然,appium 客戶端類庫只是增長了一些功能,而實際上這些功能就是簡單的擴展了Selenium 客戶端,因此他們仍然能夠用來運行通用的Selenium會話。

 

3、我是咋工做的咧

  我這麼厲害,那我是怎麼工做的呢?經過下圖簡單的展現出了Appium的工做原理(該原理圖是本人根據我的理解和網上的一些資料所得出,若有不對之處,歡迎指正)。

        

首先是咱們寫的測試腳本(Test Scripts),Appium支持多語言,由於它針對流的幾種語言分別開發的相應的Appium庫。好處就是咱們能夠選擇本身熟悉的語言編寫Appium腳本。

而後是它的服務,Appium支持多平臺,包括MAC和Windows。它針對這兩大平臺開發了Appium-Server。

其次是驅動同時支持Android 和 iOS兩個操做系統,Appium-Server 經過調用不一樣的接口來實現對Apk/Ipa的操做。針對Android設備,Android SDK 版本在17以上的會經過調用Android 系統 UIAutomator 組件的接口來實現相應操做,SDK版本在17如下會經過調用Android系統Senlendroid組件的接口來實現相應操做;針對IOS設備,則經過調用IOS系統Apple Instruments組件的接口來實現相應操做的。

最後對不一樣系統的設備上應用的自動化操做,同時支持Android 模擬器、真機和IOS真機。

綜上所述,這就使得Appium變得很是靈活。

 

即,當我在MAC平臺上,經過Python(python-client )編寫了一個Appium自動化測試腳本並執行,請求會首先到 Appium.dmg (Mac下的Appium-Server),Appium-Server經過解析,而後調用IOS系統的Apple Instruments組件的接口從而驅動iOS設備來執行Appium自動化測試腳本。

亦或者,我在Windows平臺上,經過Java( Java-client )編寫了一個Appium自動化腳本並執行,請求會首先到 AppiumForWindow.zip(Window下的Appium-Server),Appium-Server經過解析,而後調用Android模擬器或真機相關組件的接口從而驅動Android模擬器或真機來執行Appium自動化腳本。

 

 

4、怎麼才能讓我爲你效力

    1.若是你須要安裝使用Appium,你必須先要有一個基礎的JAVA環境,即安裝並配置好JDK。具體配置教程的傳送門

    2.編程語言,一門你熟悉且運用的比較順手的編程語言。我用的是Python,目前python的下載和安裝已經變得很簡單了,直接去官網下載而後運行安裝就行了。官網下載傳送門

    3.有了編程語言,你必須就得有一個用於「搬磚」(寫代碼)的IDE,這個根據我的喜愛不一樣,都會有不一樣選擇。惟一原則:用着順手就好。  

    4.下載安裝一個Appium Server

      可根據你所使用的計算機系統平臺,選擇一個對應的Appium Server。具體可參考3、我是咋工做的咧

    5.下載安裝一個Appium Client

      能夠在支持多平臺、多語言小節的Client列表內,根據你選擇的語言來選擇下載並安裝對應的Appium Client。

    6.最後爲了方便調試和更順暢的玩耍安卓應用自動化,你還須要有一個安卓的SDK。Android SDK配置教程

    

Ps:在編寫過程當中對蟲師大大的相關文章有所借鑑,在此表示感謝

相關文章
相關標籤/搜索