Mac安装Appium+python教程

核心架构:Appium使用C/S架构,运行时候Service端会监听Client端发送的命令,接着在移动设备上执行这些命令,然后将执行结果放在 HTTP 响应中返还给客户端。

一.Mac基础环境

  首先要确定Java、git、ruby、homebrew是否已经全部安装。在终端中输入下图的命令查看:

 如果没有安装,参考下面的方法

  (1)安装Java JDK

    官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载macOS x64对应的dmg安装包,一路下一步默认路径安装,java安装路径一般在:

/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk

然后去配置环境变量,在终端执行如下操作:

# 打开编辑变量文件
open -e .bash_profile

# 输入如下格式java变量,路径填写个人实际安装路径(默认安装就是如下路径)
#java
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.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

# 设置完成后需执行该文件以生效
source .bash_profile

配置完成后,命令行输入 java -version 查看版本以检测配置是否成功

localhost:~ xxx$ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

  (2)Mac上有默认自带安装了git和ruby,homebrew安装的教程参考我的博客:https://www.cnblogs.com/wangyadong/p/12709001.html

二.测试iOS使用Xcode;测试Android使用android SDK。

  (1)Xcode安装:

    从App Store上下载Xcode后,默认是不会安装Command Line Tools的,Command Line Tools是在Xcode中的一款工具,可以在命令行中运行C程序。为了配置appium环境,我们需

    要安装Xcode Command Line Tools。

    打开终端,输入xcode-select  --install 一路下一步按提示安装,安装参考:https://blog.csdn.net/yxys01/article/details/73456973 验证 xcode command line tools 是否安装成功

  (2)android SDK安装:

    (2.1)下载地址:https://www.androiddevtools.cn  选择Andriod SDK工具,SDK Tools,下载mac版本,解压,我放到/Users/wangyadong/下,终端执行:

./android-sdk-macosx/tools/android  此时会打开图形安装工具下图1,只需要手动勾选Extras,其余的默认勾选即可。然后点Install packages(共23个),下图2

  分别选中红框点击Accept License,点击Install,等待安装完成。

  (2.2)配置Android SDK的环境变量。终端执行:

cd
open -e .bash_profile
在文件末尾中加入以下语句并保存,把其中的/Users/xxx/android-sdk-macosx换成你上面解压的android sdk地址(一般都是放在/Users/xxx/下),29.0.3换成你的安装版本
#sdk
export ANDROID_HOME=/Users/xxx/android-sdk-macosx
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
#aapt
AAPT_HOME=/Users/xxx/android-sdk-macosx/build-tools/29.0.3
export AAPT_HOME
export PATH=$PATH:$AAPT_HOME
保存退出,然后终端执行 source .bash_profile
终端输入adb检查是否安装好,如下图:

三.安装python3.

  因为Mac自带python2.7,在终端直接输入python -V:

localhost:~ wangyadong$ python -V

Python 2.7.10

python官网下载。 https://www.python.org/downloads/mac-osx/

下载完成后,点击安装文件,一直点击继续进行安装就可以,安装完成后,可以在终端查看版本。

localhost:~ wangyadong$ python3 -V
Python 3.6.5

在Launchpad中多了两个app,如图:

 

安装成功后,在终端输入:

localhost:~ wangyadong$ which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3     这个就是刚才安装的python3的路径

或者使用homebrew安装,直接在终端执行

brew install python3     安装完成后,具体路径是:/usr/local/Cellar/python3/3.6.0。不过不推荐用这种方式安装

四.安装appium-desktop

 下载地址  http://pan.baidu.com/s/1jGvAISuhttps://github.com/appium/appium-desktop/releases/tag/v1.17.1-1我用的是AppiumDesktop_1.7.1,下载后安装Appium-1.7.1.dmg即可。安装成功后的图标如图:

五. 安装相关插件

(5.1)安装node:node是安装npm的前置条件。终端执行:

localhost:~ wangyadong$ brew install node
(5.2)安装cnmp:
Appium Server其实可以通过命令 npm install -g appium来安装。但是npm所下载的服务器在国外,安装会很慢,可能会因为网络原因中断安装。
所以我们可以使用国内镜像来安装,选用的是淘宝镜像,终端输入: 
localhost:~ wangyadong$ sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
(5.3)安装Appium-Python-Client,终端输入: 
localhost:~ wangyadong$ pip3 install Appium-Python-Client
(5.4)安装appium-doctor,终端输入: 
localhost:~ wangyadong$ cnpm install -g appium-doctor
上面4步都完成后,终端输入:
localhost:~ wangyadong$ appium-doctor --android

发现如下错误(据说不影响正常功能,反正我没再继续安装):

六.安装android模拟器(二选一:mac推荐使用网易mumu,appium-desktop更新到最新版之后不支持安卓5.0以下版本,夜神mac最新版本自带的是安卓4版本)

夜神下载地址:https://www.yeshen.com/

网易mumu下载地址:http://mumu.163.com/
(6.1)测试连通性(下面二选一,看appium-desktop版本,因为前面我用的appium-desktop是1.7版本,所以我用的夜神)-- 首先在安装好的模拟器中下载QQ
1.启动夜神模拟器
终端输入命令:
adb devices
如果什么都没找到,只返回如下信息:
List of devices attached
应该是SDK和夜神的版本不对。
解决办法:把SDK下platform-tools中的adb 复制到夜神模拟器下Contents下MacOS中,原来的adb改个名字即可,重启夜神模拟器
终端再次输入:
adb devices
返回如下信息,成功找到模拟器:
List of devices attached
127.0.0.1:62001 device
2.启动网易mumu
终端输入命令:
adb devices
如果什么都没找到,只返回如下信息:
List of devices attached
则终端执行:
adb connect 127.0.0.1:22471
连接成功后再次输入:
adb devices
返回如下信息,成功找到模拟器:
List of devices attached
emulator-5554 device
(6.2)启动appium
点击图中红框
使用夜神模拟器,输入如下信息保存 :
{ "platformName": "Android", "platformVersion": "7.1.2", "deviceName": "127.0.0.1:62001", "appActivity": ".activity.LoginActivity", "noReset": true, "app": "com.tencent.mobileqq" }
若appium-desktop是最新版本,则使用网易mumu,输入如下信息保存:
{ "platformName": "Android", "platformVersion": "6.0.1", "deviceName": "emulator-5554", "appActivity": ".activity.LoginActivity", "noReset": true, "appPackage": "com.tencent.mobileqq" }
点击Save As,然后点击 Start Session,连接成功!!!
(6.3)关于上面信息解释和获取(只是测试联通性,具体参数含义自行百度):
"platformName": "Android",         
"platformVersion": "7.1.2", 点击start session报错如下图时,是因为填写的版本号不对,只需修改成错误提示中红框的版本号即可。
"deviceName": "127.0.0.1:62001", 上面执行命令:adb devices 返回的名字
"appActivity": ".activity.LoginActivity",
"noReset": true,
"appPackage": "com.tencent.mobileqq"
appActivity和appPackage信息获取:
终端输入命令:
adb shell
终端输入命令:
logcat | grep cmp=
  打开夜神/网易mumu中下载的QQ,返回如下:
Last login: Fri Apr 17 23:08:27 on ttys000
localhost:~ wangyadong$ adb shell
dream2qltechn:/ # logcat | grep cmp=
04-17 23:40:16.781  7963  7963 D NetConnInfoCenter: receive broadcast Intent { act=com.tencent.mobileqq.msf.startmsf flg=0x10 pkg=com.tencent.mobileqq cmp=com.tencent.mobileqq/.msf.core.NetConnInfoCenter }
04-17 23:41:42.879  2154  2520 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.tencent.mobileqq/.activity.SplashActivity bnds=[714,448][890,688] (has extras)} from uid 1000 on display 0
04-17 23:41:43.427  2154  3769 I ActivityManager: START u0 {flg=0x40000 cmp=com.tencent.mobileqq/.activity.LoginActivity (has extras)} from uid 10037 on display 0
04-17 23:41:43.970  8198  8198 D NetConnInfoCenter: receive broadcast Intent { act=com.tencent.mobileqq.msf.startmsf flg=0x10 pkg=com.tencent.mobileqq cmp=com.tencent.mobileqq/.msf.core.NetConnInfoCenter }
以qq为例:上面红色的部分
appActivity:.activity.LoginActivity
app/appPackage:com.tencent.mobileqq
 
以上全部完成,Mac上搭建appium+python的环境就算完成了,后面再安装一个pycharm就可以进行appium自动化了。
原文地址:https://www.cnblogs.com/wangyadong/p/12709594.html