为什么优先选择Mac做自动化测试?

1、既可以做iOS端的测试也可以进行Android端测试

2、Mac运行效率相对于Win要高很多,可以真正发挥appium的功能

以下是在Mac上完整搭建过程

一、JDK和SDK的安装和配置

1、下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2、JDK的默认安装路径是 /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/

3、环境变量配置(如何bash_profile已存在就不需要重新创建)

 touch ~/.bash_profile
vim ~/.bash_profile

4、复制以下内容

 # SET PATH FOR JDK1.8
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH

5、:wq保存后使用source ~/.bash_profile使配置立即生效

6、可以echo $JAVA_HOME查看是否显示刚才配置的路径

7、下载SDK http://sdk.android-studio.org

8、同样要配置环境变量

 # SDK PATH
ANDROID_HOME=/Users/songxiao/work/sdk
PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH:.
export ANDROID_HOME
export PATH

9、验证

 java -version
adb version
android

二、安装HomeBrew(https://brew.sh/index_zh-cn)

1、终端输入

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、#替换国内镜像源(可以不用,测试了下不替换也不慢)

  ①将brew文件下载到本地

    cd ~ && curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install

  ②修改BREW_REPO和CORE_TAP_REPO    

 #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
# This script installs to /usr/local only. To install elsewhere you can just
# untar https://github.com/Homebrew/brew/tarball/master anywhere you like or
# change the value of HOMEBREW_PREFIX.
HOMEBREW_PREFIX = "/usr/local".freeze
HOMEBREW_REPOSITORY = "/usr/local/Homebrew".freeze
HOMEBREW_CACHE = "#{ENV["HOME"]}/Library/Caches/Homebrew".freeze
HOMEBREW_OLD_CACHE = "/Library/Caches/Homebrew".freeze #BREW_REPO = "https://github.com/Homebrew/brew".freeze
BREW_REPO = "git://mirrors.ustc.edu.cn/brew.git".freeze #CORE_TAP_REPO = "https://github.com/Homebrew/homebrew-core".freeze
CORE_TAP_REPO = "git://mirrors.ustc.edu.cn/homebrew-core.git".freeze

  ③执行安装 

 /usr/bin/ruby ~/brew_install

  ④添加路径

 vim ~/.bash_profile
#添加/etc/local/bin到PATH
source ~/.bash_profile

  ⑤验证

 brew doctor 

三、安装Python3

 brew install python3

  brew会直接下载最新版本的python,python3默认安装路径:

  /usr/local/Cellar/python/3.6.4_4/bin

  python2默认安装路径:

  /usr/local/Cellar/python@2/2.7.14_3/bin

1、配置Python环境变量

 # SET PATH FOR PYTHON3
PATH="/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/Cellar/python/3.6.4_4/bin:${PATH}"
export PATH
alias python="/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/bin/python3.6" # SET PATH FOR PYTHON2
#PATH="/usr/local/Cellar/python@2/2.7.14_3/bin:${PATH}"
#export PATH

四、安装node.js

 brew install node

1、检查版本

 node -v

2、安装npm

由于npm源在国外,我们使用npm安装库时会比较慢,可以使用taobao的镜像源

1 npm config set registry http://registry.npm.taobao.org

3、安装carthage

Carthage 是一个管理 iOS 开发库依赖的包

 brew install carthage

4、下载&安装&配置appium server

 npm install -g appium

5、安装appium-doctor

 npm install -g appium-doctor

6、验证

 appium-doctor

五、安装Appium-Python-Client(如何用pip3安装不上可以在脚本中alt+回车进行安装)

 pip3 install Appium-Python-Client

六、下载Appium客户端

https://github.com/appium/appium-desktop/releases

备注:

命令行启动和关闭appium服务

启动服务

①终端--appium,如果需要root权限--sudo appium

②一些参数设置

  appium -a 127.0.0.1 -p 4723 --session-override

  -a:要监听的ip

  -p:要监听的端口号

  --session-override:覆盖之前的session

③实际工作中可能用的比较多的

  appium -a 127.0.0.1 -p 4723 -bp 4724 -U device --session-override

  -bp 是连接Android设备bootstrap的端口号,默认是4724

  --chromedriver-port 是chromedriver运行需要指定的端口号,默认是9515

  -U 是连接的设备名称,如"adb devices"获取的设备标识

关闭服务

①查看端口pid

  lsof -i : 4723/sudo lsof -i : 4723/sudo lsof -i :3000 | grep LISTEN/sudo lsof -i tcp:3000 | grep LISTEN

②关闭服务

  kill -9 pid/sudo kill -9 pid

-9:强制关闭

卸载Appium Server

①卸载命令

  npm uninstall appium -g

②清理缓存

  npm cache clean

以上:如果出现权限问题,一律命令前加sudo即可

作者原创,转载请注明出处,谢谢。

Mac+Appium+Python+Pycharm环境搭建的更多相关文章

  1. Mac&Appium&Python自动化测试-环境搭建之安卓SDK

    一.摘要 本博文将详细讲述在Mac环境下的jdk安装.配置以及环境校验:安卓sdk安装.配置以及环境校验 二.安装包工具准备: jdk1.8.0(64 位) android-sdk_r24.4.1-m ...

  2. appium+python自动化☞环境搭建

    前言:appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.略懂Python,所以接下来的教程是 appium+pyt ...

  3. web自动化一(selenium+python+pycharm环境搭建)

    年前公司刚刚搭起了web自动化测试框架的环境,趁着过完年还没全部忘掉,准备把如何搭建环境的方法和大家分享下,有哪里不对的地方,请批评指正,共同进步,共勉! 为此我把搭建环境所需的软件打包上传到百度云, ...

  4. Appium+python自动化环境搭建(小白适用)

    写在前面: 没开始搭建前听好多人说,学习appium80%的人都死于环境搭建,所以一开始很紧张,在搭建环境中也确实遇到了好几个问题,由于之前本人使用app测试经验很少,所以相当于app小白,因此有的问 ...

  5. Appium+python自动化-环境搭建

    一.前言 本文是在windows10  X64系统下搭建appium,流程如下: 1.安装jdk1.8+python3.6 (64位) 2.安装node.js 3.安装Appium-desktop 4 ...

  6. Appium+python自动化环境搭建

    一.步骤及环境 环境:Windows 7版本 64位系统(python) 1.jdk安装配置:jdk1.6.0 (64位) 2.android-sdk下载安装:android-sdk_r24.3.4- ...

  7. Appium+Python自动化环境搭建-1

    前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python. 小编擅长Python,所以接下来的教程是appium+p ...

  8. Appium+python的环境搭建!

    我的电脑64位操作系统 下载并安装所需软件: 1.adb环境 2.下载(python-2.7.12.amd64.msi)并安装python 3.下载并解压adt,如(adt-bundle-window ...

  9. python+pycharm环境搭建

    1.下载python安装包 https://www.python.org/downloads/ 2.下载pycharm安装包. https://www.jetbrains.com/pycharm/do ...

随机推荐

  1. LeetCode 897. 递增顺序查找树(Increasing Order Search Tree)

    897. 递增顺序查找树 897. Increasing Order Search Tree 题目描述 给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有 ...

  2. 有助提升编程的几个Python 技巧

    一行代码定义List 定义某种列表时,写For 循环过于麻烦,幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题. 下面是使用For循环创建列表和用一行代码创建列表的对比. x = [ ...

  3. 十分钟快速入门 Python,看完即会,不用收藏!

    本文以 Eric Matthes 的<Python编程:从入门到实践>为基础,以有一定其他语言经验的程序员视角,对书中内容提炼总结,化繁为简,将这本书的精髓融合成一篇10分钟能读完的文章. ...

  4. Python之reduce函数使用示例

    #!/usr/bin/env python # -*- coding:utf8 -*- '''reduce:处理一个序列,然后把序列进行合并操作''' ###在python中没有reduce函数,所以 ...

  5. hdu 2167 题解

    题目 题意 一个数字正方形(所有数都是两位的正整数),取了一个数后,它的周围 $ 8 $ 个数都不能被选,问最大取数总和. 注意数据范围 $ 3=< n <=15 $ 我们可能一开始会去想 ...

  6. Python18之函数定义及调用,注释

    一.函数定义 def 函数名(形参1,形参2...): 函数体 return 返回值         (可以返回任何东西,一个值,一个变量,或是另一个函数的返回值,如果函数没有返回值,可以省略retu ...

  7. 全面优化MySQL

    MySQL性能瓶颈原因 硬件.系统因素 CPU 磁盘I/O 网络性能 操作系统争用 MySQL相关因素 数据库设计 索引.数据类型 应用程序性能 特定请求.短时事务 配置变量 缓冲区.高速缓存.Inn ...

  8. springboot处理事务

    ssh ssm都有事务管理service层通过applicationContext.xml配置,所有service方法都加上事务操作: 用来保证一致性,即service方法里的多个dao操作,要么同时 ...

  9. django.http.request中HttpRequest对象的一些属性与方法

    HttpRequest对象的属性 属性 描述 path 表示提交请求页面完整地址的字符串,不包括域名,如 "/music/bands/the_beatles/". method 表 ...

  10. 【转载】Request对象的作用以及常见属性

    Request对象是Asp.Net应用程序中非常重要的一个内置对象,其作用主要用于服务器端获取客户端提交过来的相应信息,比较常用的有使用Requset对象获取用户提交的html表单信息,Request ...