前言
Appium 作為移動端自動化測試工具在業界非常流行,特別是在當前移動互聯網背景下,很多公司基於此框架來開展自動化測試。但 appium 的環境配置相對 selenium 來說復雜的多,讓很多同學望而生畏。本文介紹 appium + python 基於windows 平台來搭建環境。其他平台的搭建大同小異。
環境准備
- jdk1.8
- node
- Appium
- android-sdk
- python
- Appium-Python-Client
一、安裝 jdk,配置環境變量
1.下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.安裝過程就不多說了,配置好環境變量后,檢查是否成功:

二、安裝 Appium
方法一:
1.安裝 node.js, 下載地址:http://nodejs.cn/download/
2.檢查下是否安裝成功

3.然后使用命令安裝: npm install -g appium
方法二:
1.下載地址:http://appium.io/
2.安裝后配置環境變量:把 Appium 安裝主目錄 C:\Program Files\Appium 添加到系統變量 Path
3.檢查下,能開啟 Appium代表成功:

三、安裝 android-sdk
1.下載地址:https://www.androiddevtools.cn/ (也可以直接安裝 android studio 開發工具,內部集成了android-sdk)
2.解壓后運行 SDK Manager.exe

3.下載 build-tool 工具,后面會用到 aapt 命令。

4.配置環境變量:
1)新增系統變量名 ANDROID_HOME ,變量值:D:\android-sdk-windows (android-sdk 主目錄)
2)系統變量 Path 添加 adb 和 aapt 變量值。
adb 變量值:D:\android-sdk-windows\platform-tools
aapt 變量值:D:\android-sdk-windows\build-tools\29.0.2
5.檢查環境變量配置是否成功:


四、安裝 appium-doctor
1.最新版的 Appium 不帶 appium-doctor,所以需要自己下載
2.cmd 安裝命令:npm install -g appium-doctor (參數 -g 設置 appium-doctor 環境變量)
3.運行 appium-doctor 檢查 appium 運行所需的依賴和環境變量(當然比較自信的同學也可以跳過這個步驟,非必要步驟哈!)

五、安裝 python
1.下載地址:https://www.python.org/
2.安裝過程就不說了,傻瓜式安裝。
六、安裝 Appium-Python-Client
使用 python 的 類庫管理工具 pip,cmd輸入:pip3 install Appium-Python-Client

實例運用
一、開啟模擬器
1.運行模擬器可以使用 android 自帶的,我這里用的是 Genymotion 。我為什么要用Genymotion ,當然是運行速度更快啦,哈哈!如下圖

二、運行 Appium
1.cmd 運行命令 appium 。(這里有個問題 ,手動啟用 appium,運行腳本的時候會報 Original error: Could not find 'adb.exe' in PATH,但是 adb 環境變量是配置成功的。暫不清楚是什么原因)

2.打開界面后點擊“Start Server”,Appium 開始監聽。

三、aapt命令 獲取apk包名
方法一:
1.aapt 命令可以獲取包的詳細信息,具體用法:aapt dump badging xxx/xxx/yy.apk 然后找到 PackageName

2.接着上面找到 launcherActivity

方法二:(此方法在appium最新版本 中出現部分非 android 原生頁面加載不出來的情況,慎用!)
1.將包安裝在模擬器(或真機)上,運行命令:adb shell getprop ro.build.version.release(獲取android版本號)

2.獲取包名和當前頁面信息:adb shell dumpsys window | findstr mCurrentFocus(注意:我這里打開的是首頁,下面代碼啟動app后會直接跳過引導頁進入首頁。這樣比較方便,進入頁面直接測試)

四、adb 獲取 device name
1.cmd 輸入命令:adb devices

五、運行一段腳本
運行如下測試代碼,參數中 deviceName、appPackage、appActivity 的值上文已經獲取過了。app 首頁被調起代表成功:
from appium import webdriver desired_caps = { 'platformName': 'Android', 'deviceName': '192.168.41.101:5555', 'platformVersion': '9.0', # apk包名 'appPackage': 'com.gem.tastyfood', # apk的launcherActivity 'appActivity': 'com.gem.tastyfood.LaunchActivity' } # Remote 地址在 Appuim 里找 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
六、定位元素
1.定位元素可以通過 appium 工具

2.填寫相關上文獲取的參數,點擊 Start Session

3.進入元素定位界面,然后獲取你想要的元素。

