Appium 介紹及環境安裝
阿新 • • 發佈:2021-01-13
Appium是一個可用於測試iOS、 Android作業系統和Windows桌面平臺原生應用,移動網頁應用和混合應用的自動化測試框架。
- **原生應用**(Native App):用 android、iOS或者Windows SDK編寫的應用
- **移動網頁應用**(Web App):通過手機瀏覽器訪問的網頁應用,比如iOS中 safari應用,Android上的Chrome應用或者內建瀏覽器應用,不會佔用手機的儲存空間。
- **混合應用**(Hybrid App):同時具備Native App和Web App的特性,一種 webview應用,將Javascript,HTML和CSS執行在embedded webview中,外層用Native App wrapper包起來。
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133232238-1316832927.jpg)
Appium 跨語言支援:Java、 Python、 Ruby、JavaScript (Node.js)、PHP、C# (.NET)、RobotFramework等,Appium是跨平臺的,可以用在OSX,Windows以及Linux桌面系統上執行。
# Appium架構
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133242483-785101557.png)
## Appium引擎列表
* Android 4.3+
* UIAutomator
* UIAutomator2[推薦]
* iOS
* UIAutomation (iOS ≤ 9.3)
* XCUITest[推薦] (iOS ≥ 9.3)
* Windows:
* WinAppDriver
## Appium的設計理念
### Client/Server設計模式
Appium採用 C/S架構,Appium與客戶端建立連線並監聽命令,然後在移動裝置上執行這些命令,命令執行結果通過 HTTP 響應的方式返回。客戶端通過 WebDriver json wire協議與服務端通訊。由於Appium的這種特性,我們可以將Appium server放在與測試機不同的機器上。Appium Server是使用 Node.js 編寫的HTTP服務。
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133253287-1114673834.png)
### session 會話
Appium自動化執行時會首先拉起一個session會話,客戶端和伺服器之間初始化一個session,通過傳送一個`POST /session`建立連線,客戶端的post請求中攜帶一個稱為 'desired capabilities‘ 的JSON物件,定義裝置平臺(iOS或Android)、版本、server地址等請求欄位,後面的文章將詳細介紹。伺服器接收到請求後會建立一個session並回應一個session ID,建立好連線後就可以傳送命令了。
### Appium Clients
Appium支援多語言,包括Java, Ruby, Python, PHP, JavaScript, 和 C#,這些客戶端庫支援WebDriver 協議擴充套件。
| 語言/框架 | Github倉庫地址 |
| :------------------- | :----------------------------------------------------------- |
| Ruby | https://github.com/appium/ruby_lib, https://github.com/appium/ruby_lib_core |
| Python | https://github.com/appium/python-client |
| Java | https://github.com/appium/java-client |
| JavaScript (Node.js) | https://github.com/admc/wd |
| JavaScript (Node.js) | https://github.com/webdriverio/webdriverio |
| JavaScript (Browser) | https://github.com/projectxyzio/web2driver |
| 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/serhatbolsu/robotframework-appiumlibrary |
# Appium生態工具
- **adb**:android的控制工具,用於獲取 android的各種資料和控制
- **Appium Desktop**:內嵌了 appium server和inspector的綜合工具
- **Appium Server**:appium的核心工具,命令列工具
- **Appium client**:各種語言的客戶端封裝庫,用於連線 appium server
- **AppCrawler**:自動遍歷工具
appium使用 appium-xcuitest-driver來測試iPhone裝置,其中需要安裝 facebook開發的WDA(webdriver agent)來驅動iOS測試,下面介紹Android APP測試環境安裝。
# Appium環境安裝
* Java1.8版本
* Android sdk
* Node.js(>=10 版本),npm(>=6 版本)
* Python3
* Appium-desktop
* Appium python client
## 1、安裝Node.js
* Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境
* Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。
* 是執行在服務端的 JavaScript
[https://nodejs.org/en/download/](
https://nodejs.org/en/download/)
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133317148-1775462106.png)
命令列視窗中執行`node -v` 檢視是否安裝成功
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133334277-1925528852.png)
## 2、安裝jdk
jdk下載下載地址:
[https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
按照預設路徑安裝
**配置環境變數**
“我的電腦”右鍵選單--->屬性--->高階--->環境變數--->系統變數-->新建
* 變數名:JAVA_HOME
變數值:C:\Program Files (x86)\Java\jdk1.8.0_144
* 變數名:CALSS_PATH
變數值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
找到path變數名—>“編輯”新增:
* 變數名:PATH
變數值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
檢視是否安裝成功:java -version
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133346277-512196612.png)
## 3. 安裝Android SDK
Android SDK是Google提供的Android開發工具包,在開發Android應用的時候會用到,需要通過引入工具包來呼叫Android的API
下載地址:[https://developer.android.com/](https://developer.android.com/)
中文社群的SDK下載地址:[
http://tools.android-studio.org/index.php/sdk](http://tools.android-studio.org/index.php/sdk)
雙擊開啟SDK Manage.exe,安裝API版本和對應的工具包,這些在執行模擬器和真機測試的時候會使用到。
**配置環境變數**
新建環境變數ANDROID_HOME,變數值為sdk的路徑:E:\Android\android-sdk
“我的電腦”右鍵選單--->屬性--->高階--->環境變數--->系統變數-->新建
* 變數名:ANDROID_HOME
變數值:D:\android\android-sdk-windows
找到環境變數path—>“編輯”新增:
* 變數名:PATH
* 變數值:;% ANDROID_HOME%\platform-tools;
* 變數值:% ANDROID_HOME%\build-tools;
* 變數值:% ANDROID_HOME%\tools;
tools目錄下執行android命令,platform-tools目錄執行adb命令
檢驗Android SDK是否安裝成功:`adb version`
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133402434-737947465.png)
## 4. 安裝Appium
下載地址:[https://bitbucket.org/appium/appium.app/downloads/?tab=downloads](
https://bitbucket.org/appium/appium.app/downloads/?tab=downloads)
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133414409-1876186352.png)
* 安裝完成後新增到環境變數
* 把安裝的appium資料夾的Appium\node_modules\.bin加到系統環境變數path中
執行appium-doctor,檢測appium執行環境的工具
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133423593-1184940060.png)
## 5. 安裝appium-desktop
下載地址:[https://github.com/appium/appium-desktop/releases/tag/v1.15.1](https://github.com/appium/appium-desktop/releases/tag/v1.15.1)
## 6. 下載Appium-Python-Client
下載連結:[https://pypi.org/project/Appium-Python-Client/](
https://pypi.org/project/Appium-Python-Client/)
執行`python setup.py install`安裝
![](https://img2020.cnblogs.com/blog/2229336/202012/2229336-20201220133437249-496735769.png)
或者執行 `pip install Appium-Python-Client` 安裝。
--THE END--
> 文章標題:Appium 介紹及環境安裝
> 本文作者:hiyo
> 本文連結:[https://www.cnblogs.com/hiyong/p/14163337.html](https://www.cnblogs.com/hiyong/p/14163337.html)
> 歡迎關注公眾號:「測試開發小記」及時接收最新技術文章!