在Mac OSX上配置Appium+Android自動化測試環境


前提准備
  開始正文之前,你需要准備好一些基本條件:
  1、安裝好Mac OSX  操作系統的設備
  2、能夠訪問中國局域網以外資源的方法(沒有也行,但很痛苦)
  3、已經安裝好 homebrew
  4、已經安裝好 Python3.x
  5、已經安裝好 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 模擬器或者使用真機
  如果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
  如果需要使用其他編程語言,下表供參考:
  語言/框架 Github版本庫以及安裝指南
   Ruby https://github.com/appium/rub...
  Python https://github.com/appium/pyt...
  Java https://github.com/appium/jav...
  JavaScript (Node.js) https://github.com/admc/wd
  Objective C https://github.com/appium/sel...
  PHP https://github.com/appium/php...
  C# (.NET) https://github.com/appium/app...
  RobotFramework https://github.com/jollychang...
   必要的環境變量設置
  如果你已經安裝了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
   開始編寫自動化測試
  終於到了開始寫代碼的時候了,相信你已經迫不及待了,別急,你還要准備以下條件:
  模擬器或者測試機必須是Ready的狀態,每次啟動模擬器都很費時間,所以建議模擬器不要關閉,通過代碼來啟動模擬器是一個辦法,但是時間成本有點高。
  如果是調試代碼階段,建議保持Appium桌面版長期運行,但是Appium和uiautomator有沖突,只能二選一。
  Appium會根據你的測試代碼去尋找符合要求的設備,如果你啟動了多台虛擬機或者連接了多台實體機,請顯式地在代碼中指定設備名稱或者版本號。
  自動化測試代碼例子如下,啟動內置撥號軟件,搜索關鍵字。
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')
  恭喜你,解鎖了移動應用測試的新成就!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM