[TOC]
## Appium運行原理
Appium是一個開源的自動化框架,可用于測試**原生APP**,**混合型APP**和**WEB APP**。它通過**WebDriver協議**驅動iOS,Android和Windows系統app。
重要的是Appium是**跨平臺**的,何為跨平臺,意思就是可以針對不同的平臺用一套api來編寫測試用例。

如圖所示,appium主要分為三個點:**client端**,**server端**,及**移動設備**
* client端:用各類語言寫的測試腳本
* server端:我們安裝appium工具的那部分,專門用來監聽并接收來自client端的請求,轉發請求并控制移動設備執行測試,默認開啟并監聽4723接口
* 移動設備:支持三類設備,我們的最終目的:在設備上自動執行指定的操作
**整個執行過程包括**:
1. 在某臺服務器上安裝appium工具(server端),開啟進程(默認4723端口)監聽;
2. 編寫測試腳本,放置到服務器上,執行該測試腳本(相當于發送命令給server端);
3. 移動設備接收到server端發送過來的命令,執行指定的操作。
## Appium 在 Android 上的架構

通過架構圖,我們可以知道appium是基于WebDriver協議的,它利用Bootstrap調用google公布的android自動化測試框架UIautomator的命令來實現app自動化。
## 安裝 java 運行環境
### 安裝 java jdk
本書實例,使用jdk版本為:1.8.0_25,具體安裝過程與環境變量設置,自行百度。
### 安裝 android sdk
Android SDK提供給我們API庫和開發工具構建,測試和調試應用程序,Android。簡單來講,Android SDK 可以看做用于開發和運行Android應用的一個軟件。
使用Appium進行安卓APP自動化測試,需要安裝sdk-tools、platform-tools與build-tools
官網下載地址:[https://developer.android.com/](https://developer.android.com/)
本書使用android sdk 已整合到百度云盤: [android_sdk](https://pan.baidu.com/s/1Bo0oO96CWPUDj6CrDWtzNw) 直接下載解壓到本地,然后配置環境變量即可。
* 配置環境變量
首先創建系統變量`ANDROID_HOME`

然后在path中,添加`%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools`
* 測試adb命令
```cmd
C:\Users\Administrator>where adb
E:\android_sdk\platform-tools\adb.exe
C:\Users\Administrator>
C:\Users\Administrator>adb devices
List of devices attached
```
### 安裝 android 模擬器
經過多個模擬器的使用測試,我推薦大家使用“雷電模擬器”,本書也主要使用“雷電模擬器”來進行開發與調試。
官網地址:[http://www.ldmnq.com/](http://www.ldmnq.com/)
本書使用版本:[ldinst_3.24.exe](https://pan.baidu.com/s/11QxISmmYpupIWOjVa1z6JQ)
安裝后,啟動模擬器,在cmd中用adb檢查設備連接狀態。
```cmd
C:\Users\Administrator>adb devices
List of devices attached
emulator-5554 device
```
## 安裝 appium 服務端
官方下載:[http://appium.io/](http://appium.io/)
本書使用 [appium-desktop-setup-1.6.3.exe](https://pan.baidu.com/s/1IfB8JPNIlJ5vjJGlcJF8qg)
安裝后,啟動appium,運行后如下:


## 安裝 appium client library
```cmd
pip install Appium-Python-Client
```
本課程實例,使用的版本是:0.28
<br>
---
到此,我們已經安裝好python appium 開發和運行環境啦~
下一節,我們開始進入學習如何編寫python代碼,來驅動安卓app自動化吧。
:-: 