zoukankan      html  css  js  c++  java
  • 在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 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下载,需要梯子。

    下载到的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')
    

      




  • 相关阅读:
    HDU 2414 Chessboard Dance (力模拟)
    hdu2571命
    【玩转微信公众平台六】 构建新浪SAEserver
    【CTO辩论】移动创业大军:谁斗争or变更代理
    Swift语言iOS开发:CALayer十则示例
    小编辑 Java 中十进制和十六进制的相互转换
    RGB与HSB之间的转换公式
    YUV / RGB 格式及快速转换算法
    光学基础知识:白光、颜色混合、RGB、色彩空间
    关于HSL和HSV颜色空间的详细论述
  • 原文地址:https://www.cnblogs.com/xqnq2007/p/8151180.html
Copyright © 2011-2022 走看看