在Mac OSX 上配置Appium+Android自動化測試環境
前提準備
開始正文之前,你需要準備好一些基本條件:
- 安裝好Mac OSX 操作系統的設備
- 能夠訪問中國局域網以外資源的方法(沒有也行,但很痛苦)
- 已經安裝好 homebrew
- 已經安裝好 Python3.x
- 已經安裝好 Java Runtime Environment
安裝 Android Studio / SDK
本文主要為了測試安卓應用,那麽這裏我們就需要安裝Android Studio或者Android SDK。
- Android Studio - 完整的開發以及測試工具,需要梯子
- Android SDK - 足夠完成自動化測試,通過homebrew安裝
如果只是為了自動化測試我建議安裝SDK足矣,使用brew命令安裝。
brew install android-sdk
在國內使用brew可以事先配置好國內源,速度會快很多。
如果有梯子建議選擇Android Studio,安裝方法很簡單,官網下載後一路Next,啟動後會讓你把SDK等等一系列依賴都裝好,一步到位。
實際安卓Android Studio比較好,一步到位,可以到sdk等都安裝好,安卓studio安裝過程後啟動時會出現proxy錯誤,這裏點擊取消,然後安裝完,打開後,在sdk manager中設置代理
Android SDK 在線更新鏡像服務器資源:
大連東軟信息學院鏡像服務器地址:
- http://mirrors.neusoft.edu.cn 端口:80
北京化工大學鏡像服務器地址:
- IPv4: http://ubuntu.buct.edu.cn/ 端口:80
- IPv4: http://ubuntu.buct.cn/ 端口:80
- IPv6: http://ubuntu.buct6.edu.cn/ 端口:80
上海GDG鏡像服務器地址:
- http://sdk.gdgshanghai.com 端口:8000
親測第一個好用
準備Android 模擬器或者使用真機
如果SDK已經安裝完畢,應該可以使用adb命令來檢查可用的模擬器或者已經連接到電腦上的實體手機。
adb devices
如果不知道adb工具在哪,可以先在命令行裏通過find搜索。
find /Users -name adb # 搜索用戶目錄
find / -name adb # 搜索全盤
找到之後可以把 adb 目錄加入PATH,方便後續使用。
安裝Appium
Appium 可以通過多種方式安裝。
方式一:使用 NodeJS 安裝
首先通過brew安裝nodejs:
brew install node
配置國內源,在個人目錄下新建一個.npmrc文件,寫入:
registry=https://registry.npm.taobao.org/
開始安裝Appium:
npm install -g appium
npm install -g appium-doctor
Appium-doctor 可以幫你診斷測試環境,建議安裝。
方式二:下載Appium桌面版安裝
官方的Appium桌面安裝包可以從github下載,需要梯子。
- https://github.com/appium/app...
下載到的dmg文件雙擊裝載,把Appium拖到Application裏完成安裝。
安裝 Appium-Client
本文只討論Python實現的Appium測試,所以你只需要允許以下命令:
pip install Appium-Python-Client
如果你已經安裝了appium-doctor,那麽你只要運行appium-doctor命令就可以知道你還需要設置哪些環境變量,
tobyqin@CatBook ~> appium-doctor info AppiumDoctor Appium Doctor v.1.4.3 info AppiumDoctor ### Diagnostic starting ### info AppiumDoctor ? The Node.js binary was found at: /usr/local/bin/node info AppiumDoctor ? Node version is 7.10.0 info AppiumDoctor ? Xcode is installed at: /Applications/Xcode.app/Contents/Developer WARN AppiumDoctor ? Xcode Command Line Tools are NOT installed! info AppiumDoctor ? DevToolsSecurity is enabled. info AppiumDoctor ? The Authorization DB is set up properly. WARN AppiumDoctor ? Carthage was NOT found! info AppiumDoctor ? HOME is set to: /Users/tobyqin info AppiumDoctor ? ANDROID_HOME is set to: /Users/tobyqin/Library/Android/sdk/ info AppiumDoctor ? JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home info AppiumDoctor ? adb exists at: /Users/tobyqin/Library/Android/sdk/platform-tools/adb info AppiumDoctor ? android exists at: /Users/tobyqin/Library/Android/sdk/tools/android info AppiumDoctor ? emulator exists at: /Users/tobyqin/Library/Android/sdk/tools/emulator info AppiumDoctor ? Bin directory of $JAVA_HOME is set info AppiumDoctor ### Diagnostic completed, 2 fixes needed. ### info AppiumDoctor info AppiumDoctor ### Manual Fixes Needed ### info AppiumDoctor The configuration cannot be automatically fixed, please do the following first: WARN AppiumDoctor - Please install Carthage. Visit https://github.com/Carthage/Carthage#installing-carthage for more information. info AppiumDoctor ### info AppiumDoctor info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
其實你不一定需要把通過所有檢查項,如果只是為了完成Android的Appium測試,只要確保ANDROID_HOME 和 JAVA_HOME 正確配置,另外SDK Tools 和Platform Tools都加入PATH就基本完成了。可以參考我個人目錄下的.bash_profile設置:
export ANDROID_HOME=~/Library/Android/sdk/ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home export PATH=~/bin:$PATH:/usr/local/bin:$ANDROID_HOME/platform-tools/:$JAVA_HOME/bin
開始編寫自動化測試
from appium import webdriver desired_caps = {} desired_caps[‘platformName‘] = ‘Android‘ desired_caps[‘platformVersion‘] = ‘7.1.1‘ desired_caps[‘deviceName‘] = ‘Android Emulator‘ desired_caps[‘appPackage‘] = ‘com.android.dialer‘ desired_caps[‘appActivity‘] = ‘DialtactsActivity‘ driver = webdriver.Remote(‘http://localhost:4723/wd/hub‘, desired_caps) driver.find_element_by_id(‘com.android.dialer:id/search_box_collapsed‘).click() search_box = driver.find_element_by_id(‘com.android.dialer:id/search_view‘) search_box.click() search_box.send_keys(‘hello toby‘)
在Mac OSX 上配置Appium+Android自動化測試環境