APP自動化測試實戰之Appium介紹和環境準備
0X00 Appium 介紹
Appium 是一個自動化測試開源工具,支援 iOS 平臺和 Android 平臺上的原生應用,web 應用和混合應用。
(1)“移動原生應用”是指那些用 iOS 或者 Android SDK 寫的應用。
(2)“移動 web 應用”是指使用移動瀏覽器訪問的應用(Appium 支援 iOS 上的 Safari 和 Android 上的 Chrome)。
(3)“混合應用”是指原生程式碼封裝網頁檢視——原生程式碼和 web 內容互動。比如,我們在微信裡可以檢視網頁,可以通過網頁應用買電影票等。
重要的是,Appium 是一個跨平臺的工具:它允許測試人員在不同的平臺(iOS,Android)使用同一套API來寫自動化測試指令碼,這樣大大增加了 iOS 和 Android 測試套件間程式碼的複用性。
0X01 Appium 的理念
為了滿足移動自動化需求,Appium 遵循著一種哲學,主要有以下4條:
(1)你無需為了自動化,而重新編譯或者修改你的應用。
(2)你不必侷限於某種語言或者框架來寫和執行測試指令碼。
(3)一個移動自動化的框架不應該在介面上重複造輪子。(移動自動化的介面應該統一)
(4)無論是精神上,還是名義上,都必須開源。
0X02 Appium 概念
C/S 架構
Appium 的核心是一個 web 伺服器,它提供了一套 REST 的介面。它收到客戶端的連線,監聽到命令,接著在移動裝置上執行這些命令,然後將執行結果放在 HTTP響應中返還給客戶端。事實上,這種客戶端/服務端的架構給予了許多的可能性:比如我們可以使用任何實現了該客戶端的語言來寫我們的測試程式碼。比如我們可以把服務端放在不同 的機器上。比如我們可以只寫測試程式碼,然後使用雲服務來執行命令。
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 的。我們也可以設定 safariAllowPopups 這個 capability 為 true,確保在 Safari 自動化 session 中,我們可以使用 javascript 來開啟新視窗。
Appium Server
Appium server 是用 Node.js 編寫的一個伺服器。我們可以用原始碼編譯或者從 NPM 直接安裝。
Appium Client
Appium Client 有很多語言庫。包括 Java, Ruby, Python, PHP, JavaScript 和 C#,這些庫都實現了 Appium 對 WebDriver 協議的擴充套件。當使用 Appium 的時候,你只需使用這些庫代替常規的 WebDriver 庫就可以了。
與其他測試框架對比
0X03 環境搭建
(請一路點選下一步)
1、安裝appium
https://bitbucket.org/appium/appium.app/downloads/
或者
http://pan.baidu.com/s/1jGvAISu#list/path=%2F
2、安裝.net(如果不能啟動appium,就要安裝.net環境)
http://dotnetsocial.cloudapp.net/GetDotnet?rClrVer=v4.0
3、安裝node.js
https://nodejs.org/
驗證是否安裝成功:
4、安裝夜神
https://www.yeshen.com/
5、安裝Python(本機沒Python環境則需要安裝)
6、安裝Appium-Python-Client
pip install Appium-Python-Client
7、下載adt ,配置adb環境變數
32bit
http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
64bit
http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
mac
http://dl.google.com/android/adt/adt-bundle-mac-x86_64-20140702.zip
解壓adt-bundle-windows-xxxx-20140702.zip 放到一個英文目錄下,不要帶中文。
配置:
變數名:ANDROID_HOME
變數值:D:\android\android-sdk-windows
找到path變數名—>“編輯”新增:
變數名:PATH
變數值:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools
驗證adb是否安裝成功
例項驗證。
啟動夜神並在cmd命令列中輸入adb devices 顯示如下,說明有android驅動載入。
啟動之後,在cmd下輸入下面命令
adb connect 127.0.0.1:62001
adb devices
見到如下圖所示就可以使用了。