appium入門


前言


   做了多年的工程性測試后,發現薪資待遇很難再跨上一個新的台階,對於打工族來說,薪資待遇是我們擇業最重要的參考依據,其他的都是虛話。同時隨着時間的流逝,年齡也逐漸變大,危機感越來越強,而且感覺只會功能性測試沒有什么成就感。基於以上原因我們應該掌握更多的技術,來提高自己的競爭力和生存空間。當然功能性測試如果想達到一定的高度其實也是有難度的。任何工具和技術都無法取代之。在這里我們不討論這個。學習一門新技術需要經歷很多曲折,很多人都可以入門,但因為困難很多,所以沒有堅持下去,就這樣放棄了。在這里我想對大家說,包括我自己:凡事都需要堅持再堅持!只要堅持下去,總會有收獲的。在這里我把我學習過程跟大家一起分享和交流,希望大家一起成長,一起進步。

appium介紹

官方網站

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地址
Ruby https://github.com/appium/ruby_lib
Python https://github.com/appium/python-client
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

 

 

 

 

 

 

 

 

 

 

 

 

4.appium工作原理


 在安裝和介紹appium之前,非常有必要介紹一下appium是如何工作的。

那它是怎么工作的呢?

網上講了一大堆,我這里根據我個人的理解簡單明了敘述一下(如果問題,歡迎交流更正),運行腳本后,appium-server會監聽到,然后它會解析腳本,驅動Android虛擬機或真機來執行相應的操作。最后將執行結果返回。就好比鵲橋中繼星的功能一樣,負責牽線搭橋,處理兩端的事務。

對於剛入門的我們來說,不需要去深入的了解。隨着不斷學習,后面我們可以加深理解。

環境搭建


工欲善其事必先利其器,我們做一件事情首先要搞清楚需要哪些東西。我這里是用Java來編寫腳本的。用Python的朋友請參考Python的環境搭建,網上很多,這里不贅述。

1 安裝JDK
Java的運行環境。

1.1下載

下載地址:https://www.oracle.com/java/technologies/javase-jdk13-downloads.html

官網下載需要注冊Oracle賬號,當然也可以通過其他途徑下載。目前最新版本是13,我自己使用的是8,其實足夠了,不需要很新。

1.2 安裝和配置環境變量

安裝完以后,需要配置環境變量,這里以win10為例:

**右擊我的電腦----屬性----高級系統設置----環境變量----系統變量----新建path

 **把jdk的bin目錄地址填上去,點擊確定

  **測試有沒有安裝成功

進入命令行,輸入Java以及Javac

 

 看到以上信息,代表是成功了

2 安裝appium
就是安裝appium-server(帶界面),用於接收請求解析腳本,驅動設備或者模擬器執行相應操作。然后將結果返回。

2.1 下載及安裝

下載地址:http://appium.io/

 下載完后直接安裝,全部next就行了。

 2.2 配置

安裝完后打開它。然后開始配置,暫時就按照這個來配置,其他的默認,先用起來再說

 

 

注意:配置好了一定要保存,不然下次就沒了,保存好了下次可以繼續使用,這是保存好的信息。下次啟動的時候我們直接點擊左下角的start server v1.15.1


3 Android-sdk

軟件開發工具包,使用Java語言開發。其實就是類庫和工具。比如腳本中需要的一些操作,一些組件。再比如我們常用到的元素定位工具--uiautomatorviewer

我看到網上一些資料說是直接下載解壓包就行了,但是我這里找不到。還是得安裝。如有解壓版的朋友可以分享一下

3.1下載

地址:http://tools.android-studio.org/index.php/sdk/

 3.2 安裝

下載完后解壓,解壓后是這樣子的。但是里面的add-ones,platforms都是空的,還是得安

 點擊 SDK Manager,主要安裝以下(安裝過程有點長,需要耐心,安裝完成的后面都會打√ ,並且狀態是installed)

 

這個地方說明一下,我這里安裝的是5.1.1的,我建議跟模擬的版本保持一致。我一開始用的是最高版本,然而卻出現了問題。理論上高版本會兼容低版本的

 

 

 

 如果網速不好可以更換鏡像庫:tools---options

  

3.3 配置

在環境變量里面新增ANDROID_HOME,把Android-sdk的路徑填上去

 

 然后把platform-tools和built-tools路徑追加進去,點擊確定

 

 3.4測試是否配置OK

先測試adb命令(Android debug bridge,android調試橋),看到以下信息證明是成功的

 

 再測試aapt命令(這個選項,可以不配置,主要用來解析軟件包的一些信息,到時候用得上),后面會講到怎么用

 

4 安裝安卓模擬器(可選項,可以用真機代替)

 我這里安裝的是夜神模擬器,安裝雷神模擬器獲取APP快照的時候總報錯

下載地址:https://www.yeshen.com/

自行根據電腦的情況下載對應的版本,安裝完以后的界面

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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