前提准备
  开始正文之前,你需要准备好一些基本条件:
  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版本库以及安装指南
  Rubyhttps://github.com/appium/rub...
  Pythonhttps://github.com/appium/pyt...
  Javahttps://github.com/appium/jav...
  JavaScript (Node.js)https://github.com/admc/wd
  Objective Chttps://github.com/appium/sel...
  PHPhttps://github.com/appium/php...
  C# (.NET)https://github.com/appium/app...
  RobotFrameworkhttps://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')
  恭喜你,解锁了移动应用测试的新成就!

在Mac OSX上配置Appium+Android自动化测试环境的更多相关文章

  1. 在Mac OSX 上配置Appium+Android自动化测试环境

    前提准备 开始正文之前,你需要准备好一些基本条件: 安装好Mac OSX 操作系统的设备 能够访问中国局域网以外资源的方法(没有也行,但很痛苦) 已经安装好 homebrew 已经安装好 Python ...

  2. mac上搭建appium+IOS自动化测试环境(二)

    上一篇: mac上搭建appium+IOS自动化测试环境(一) 9.安装appium-xcuitest-driver依赖 进入WebDriverAgent安装目录,运行bootstrap 首先进入目录 ...

  3. mac上搭建appium+IOS自动化测试环境(一)

    阅读须知 由于OS X系统最近才开始接触,所以有些东西也不是很清楚,这里只提供方法不提供原理,能解释清楚的我也会尽量解释.可能也有一些地方说的不严谨或有错的,还望大家指点一二. 实验环境 操作系统: ...

  4. appium+android自动化测试环境部署

    1 node.js安装 官网(https://nodejs.org/en/) 下载对应版本的node.js并安装 安装完成后cmd中输入node -v,输入版本号则安装成功 2 jdk安装 下载对应版 ...

  5. 在Mac系统上配置Android真机调试环境

    在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...

  6. Mac OSX上的软件包管理工具,brew 即 Homebrew

    brew 即 Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便. brew类似ubuntu系统下的apt-get的功能. 安装 ...

  7. brew mac osx 上软件包管理工具

    今天推荐 Mac OSX 下,方便高效的包管理工具 brew brew 的全名叫做 Homebrew 它的功能类似于 ubuntu 下同下 apt-get ,或者 Cent OS 下的 yum 等包管 ...

  8. Delphi for iOS开发指南(1):在Mac上配置你的开发环境

    http://cache.baiducontent.com/c?m=9d78d513d99516f11ab7cf690d678c3b584380122ba7a0020fd18438e4732b4050 ...

  9. brew 又叫Homebrew,是Mac OSX上的软件包管理工具

    brew 又叫Homebrew,是Mac OSX上的软件包管理工具; Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以 ...

随机推荐

  1. 距离不是一个连续的物理量(Distance is not a continuous physical quantity)

    量子距:不同于现有物理学的长度计量.量子距,空间中的两个粒子之间的距离并不是连续的,而是某个单位距(量子单位距)的整数倍,而这个距离被称为量子距. Quantum distance: Length m ...

  2. centos7.5搭建cdh5.13.0

    序言 本文集群搭建为三台机器,cdh版本为5.13.0,以下是安装过程中所用到的软件包等,可以自行下载.一.前期准备1.安装环境 系统:centos7.5/最小安装版本/64位 内存:主节点 --&g ...

  3. spring实现一个简单的事务管理

    前两天给公司的数据库操作加了事务管理,今天博客就更一下这个吧. 先说明:本文只是简单得实现一下事务,事务的具体内容,比如事务的等级,事务的具体实现原理等等... 菜鸟水平有限,暂时还更不了这个,以后的 ...

  4. s6-7 TCP 传输策略

    TCP 传输策略 防止黏包现象的出现 当窗口数为 0 时,发送者不能正常发送数据段,除非: -Urgent数据.比如,用户想杀掉远端机器上的进程的时候,可以发送数据 -发送者可以发送一个字节的数据段, ...

  5. s6-5 TCP 连接的建立

    TCP 连接的建立 采用三次握手建立连接 一方(server)被动地等待一个进来的连接请求 另一方(the client)通过发送连接请求,设置一些参数 服务器方回发确认应答 应答到达请求方,请求方最 ...

  6. [转]ps命令详解

    原文地址:http://apps.hi.baidu.com/share/detail/32573968 转载自:http://www.cnblogs.com/wangkangluo1/archive/ ...

  7. Session使用(14)

    用session统计某个网页的访问人数(因为我还不会js,所以就做了个简易版本的) 1.创建Session监听器,每创建了一个Session对象就执行监听类中·的sessionCreated方法. p ...

  8. 浅析列表页请求优化(history API)

    最近搞了下列表页请求的功能,并做了一下调研整理,记此文备忘. 列表页请求的功能到处可见,比如在博客园. 点击相应的页码,页面返回相应的内容,看上去似乎大同小异,但是一些小的细节还是可以区分优劣. fu ...

  9. linux dhcp 简单配置

    dhcp 端口 UDP67和UDP68为正常的DHCP服务端口 rpm -qa | grep dhcp 查询是否安装了dhcp 服务 安装dhcp 服务 yum install dhcp -y 打开/ ...

  10. Django积木块三——静态文件和上传文件

    静态文件和上传的文件 # 静态文件 STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) # ...