一、python 环境准备

Mac 自带 Python 环境,一般为 2.7 版本。

1、查看当前系统默认的Python路径

which python
==> /usr/bin/python

2、查看当前 python 版本

python --versio
==> Python 2.7.10

3. 安装 python2 的包管理工具 pip

curl https://bootstrap.pypa.io/ez_setup.py -o - | python
==> easy_install pip

4、安装 brew包管理器

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

5、安装 Python3 版本(如有需要)

搜索 Python3

brew search python3

安装 Python3

brew install python3

运行Python3

python3

注意:不要删除python2,不要删除python2,Mac 系统有些自带App需要Python2支持。

6、安装 requests模块

Python2

sudo pip install requests

Python3

sudo pip3 install requests

二、安装 Xcode和 Android SDK环境

1、Mac Xcode 环境配置

进入App Store,下载Xcode,傻瓜安装不用多将

2、Mac 下 Android SDK 环境配置

官方下载地址: 
https://developer.android.com/studio/index.html

国内镜像地址:

http://tools.android-studio.org/index.php/85-tools/110-androidsdk-mirrors

http://www.androiddevtools.cn/

http://npm.taobao.org/

官网最底部下载对应的SDK工具包就可以了,官网大概率被墙,进去不了,去镜像网站下。

下载并安装完成后,配置环境变量

# vim /etc/profile
export ANDROID_HOME=/Users/macbook/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

注意:/Users/macbook/Library/Android/sdk 路径需要时自己的安装路径

3、配置 Java 环境

下载 JDK,并安装,然后配置环境变量,如下:

# vim /etc/profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

刷新配置文件

source /etc/profile

三、Mac 下安装 Appium

Mac 下的 Appium 安装比较繁琐,因为他对iOS的支持不怎么友好,有很多的依赖需要安装,需要细心的一步一步的配置。

1、 安装 brew (已经安装,请忽略)

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

2、 安装 libimobiledevice

Appium iOS真机支持依赖一个重要的第三方软件套件 libimobiledevice,使用 Homebrew 可以轻易地安装好。

brew install libimobiledevice –HEAD

3、安装 carthage

为了在Xcode 8(其中包括所有iOS 10+的测试)使用iOS真机做自动化,你要安装 Carthage 去做依赖管理:

brew install carthage

4、安装 node.js

nodejs下载地址:https://nodejs.org/en/download/

下载pkg文件,然后一键安装

5、安装 cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

6、安装 ios-deploy

作为对 libimobiledevice 依赖的补充,Appium 对 iOS 9.3 及以上和 Xcode 8 及以上的支持依赖 ios-deploy,ios-deploy可以用来安装卸载 ios应用。

cnpm有个问题,就是安装的node_module 会全部放在当前路径下。所以我们使用 cnpm 的时候,需要切换到/usr/local/lib(node模块默认安装路径)

在终端输入:

cd /usr/local/lib
cnpm install -g ios-deploy

7、安装 xcpretty

gem install xcpretty

安装时间会比较长,如果没反应,需要耐心等待。安装失败建议切换目录重新安装。也可以更换 gem 源:

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

如果 gem 版本过低需要升级。

8、安装 Appium

8.1、安装 Appium-block 版本

cnpm install -g appium@1.12.1

注意:@1.12.1可以去除,去除后会自动安装最新版本

注意:安装 appium-desktop 版本,可以直接用来获取app的页面元素信息,建议另安装该版本或者直接安装 appium-desktop 版本,进入appium官网下载安装即可。

下载地址:appium/appium-desktop

8.2、安装appium-doctor

用于检测 appium 运行环境

npm install appium-doctor -g

安装完成后,执行 appium-doctor 检查 appium 安装是否完全(如果提示找不到文件,则进入appium安装目录/appium-doctor/目录下,执行./appium-doctor.js),检查结果如下:

上图表明环境已配置完成,如果环境检查出现 X ,检查是否安装对应的程序和环境变量的配置。

9、安装 appium-xcuitest-driver 依赖

进入 Appium 安装目录,查找目录下的 WebDriverAgent,进入 WebDriverAgent 后,执行以下命令

mkdir -p Resources/WebDriverAgent.bundle
sh ./Scripts/bootstrap.sh

10、编译WebDriverAgentLib

进入 WebDriverAgent 目录,找到 WebDriverAgent.xcodeproj,双击打开,默认就是用Xcode打开。切换到 WebdriverAgentLib,编辑如下图内容,然后点击左上角那个播放按钮进行编译,build succeed 就可继续进行。(关于 team,可即时注册个人开发者账号,激活后填入即可,此处会返回10位ID,后面连接真机时会用到 )

11、编译WebDriverAgentRunner

首先编辑general里的内容,和上面大同小异,也是需要勾选自动签名和选择开发者帐号。配置好后点击编译按钮,build succeed 就可继续进行。

12、获取手机的udid

将手机通过usb连上电脑,然后打开itunes,然后选中链接的iPhone,点击一下序列号,然后会弹出 udid 。

13、建立 WebDriverAgent 服务

手机开启USB调试模式与Mac 在同一网络,关闭 xcode,进入WebDriverAgent 文件夹。

cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid' test

这时候可以看到手机上多了一个WebdriverAgent的app,则表示环境已经配置成功。第一次会提示不受信任的开发者,需要进入设置-通用-设备管理(描述文件) 信任你的 Apple id。

14、Appium 获取元素

Mac 的Appium 获取元素需要安装appium-desktop版本。

14.1 启动 AppiumDesktop

打开 appium,启动 appium server

点击右上角放大镜,打开 Appium server 设置

进入 Automatic Server - Desired Capabilities 中录入对应的配置信息,如下图

14.2 Desired Capabilities 参数

填写以上参数,等待启动,即可看到测试 app 的全部元素信息。

{ "platformName": "iOS",

"platformVersion": "11.0",

"deviceName": "iPhone 7",

"automationName": "XCUITest",

"app": "/path/to/my.app"}

编写好通用的Desired Capabilities 配置信息会自动保存到Saved Capability Sets。连接手机后,点击 Start Session按钮,开始会话。

参数说明:

根据需求添加必要的参数,常用参数如下:

"automationName": "Appium", -- 可选,搜索引擎,appium(默认)还是Selendroid

"platformName": "iOS", -- 必填,应用平台,iOS, Android, or FirefoxOS

"platformVersion": "10.3", -- 必填,测试的系统版本,设置两位就可以了

"deviceName": "iPhone7", -- 必填,使用的手机或模拟器类型,iPhone Simulator, Android Emulator, Galaxy S4

"app": "com.apple.calculator", -- Android可选,iOS必填,应用的绝对路径,与browserName属性冲突,

"appPackage" : "com.test.now", -- Android未填app参数必填,运行的 Android 应用的包名,

"appActivity": "com.sng.LauncherActivity", -- Android未填app参数必填,Activity 的名字是指从你的包中所要启动的 Android acticity,

"bundleId":"io.appium.TestApp", -- iOS未填app参数必填,用于在真实设备中启动测试,使用其他需要 bundle ID 的关键字启动测试。

"browserName":"Chromium", -- 做自动化时使用的浏览器名字, 与app 冲突,

"udid":" ", -- 多客户端链接多台手机时必填,连接真机的唯一设备号,iOS通过iTunes拷贝过来,IOS真机测试必填,

"noReset":"true" -- 在当前 session 下不会重置应用的状态, 是否清除应用缓存。默认值为false,

"fullReset":"false" -- (iOS)删除所有的模拟器文件夹。(Android) 要清除 app 里的数据,请将应用卸载才能达到重置应用的效果。在 Android, 在 session 完成之后也会将应用卸载掉。默认值为false ,

"xcodeOrgId":"123ADE4Y56", -- 十位字符的组织ID是苹果开发证书的组织单位,appium可以通过十位组织单位ID找到相应的组织,IOS真机测试必填(注意: 连接真机时,测试app的打包签名证书必须要与xcodeOrgId里的一致,否则会报证书错误,错误代码是65)

"xcodeSigningId": "iPhone Developer", -- iOS真机测试必填,这里参数是固定的,就这样写,

"wdaLocalPort":"8100" -- 默认手机连接MAC本使用的端口,默认是8100,非必填

"unicodeKeyboard":"True" -- 使用 Unicode字符,输入中文必须参数

"resetKeyboard":"True" -- 重置键盘,输入中文必须参数

更多详细的参数请参考官网:Caps - Appium

14.3 The Inspector

会话连接成功后就会展示 The Inspector,它是应用程序状态的可视化表示。

Select Elements:选取元素,可选取左边页面上的元素。获取元素的ID或者xpath等等类似的信息。选中某一元素后,该元素的详细信息会展示在右侧的视图中,并且可以在右侧选择要对此元素进行的操作,包括tap、sendkey、clear。

Swipe By Coordinates:滑动,在截图页面上定位两个点,页面将会根据定点滑动。

Tap By Coordinates:点击,可点击左边页面上的元素。

Back:相当于返回按钮

Refresh Source & Screenshot:刷新当前视图

Search for element:寻找元素,当元素无法通过 Select Elements 并无法选取到,可以使用Search for element进行元素的查找。

Start Recording:录制,开始录制你的测试脚本,注意:它是学习工具,不是代码生成工具。

Appium Mac系统 自动测试环境搭建的更多相关文章

  1. 『与善仁』Appium基础 — 1、Android系统的测试环境搭建

    目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...

  2. 如何搭建基于C#和 Appium 的 Android自动测试环境

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 如果想做手机端的自动化测试,Appium是首选的测试框架,因为网上使 ...

  3. Appium robotframework-appium (ios 客户端测试)环境搭建

    一. 简介 1.1摘要 本人测试新人,最近在搞ios客户端的自动化,准备采用robotframework-appium来实现自动化测试,一边学习一边总结,此安装说明文档是基于mac系统10.11版本, ...

  4. Appium与python自动测试环境及demo详解

    App--UI自动化这种高端的名词已经被越来越多的人所高呼,可是从实际角度来讲,个人觉得还是有点鸡肋,不如接口自动化敏捷度高,工作量 也是接口自动化的好几倍.但是,[划重点了]  在技术时代中,作为测 ...

  5. MAC系统 -java开发环境搭建

    MAC - java开发环境搭建 软件: jdk Intellij IDEA:java开发工具 maven:jar包管理 git :源码管理 sourceTree :源码管理GUI客户端 Studio ...

  6. [转] Mac系统Robot Framework环境搭建

    一.由于Mac系统下自带python,所以不需要再进行安装了 二.关闭mac电脑的sip, 1.重启 Mac并长按 Cmd + R 2.打开终端,执行csrutil disable命令 3.重启电脑 ...

  7. Mac系统STF自动化环境搭建及部署踩坑记录

    因为公司需要寻找一个免root的自动化测试方案,所以以前做的老方案需要被替代.一阵搜寻找到了这个框架,但是部署起来很是折腾,搞了一下午终于搞定,顺便记录一下过程,有需要的自取. 转载请注明出处:htt ...

  8. MAC 系统java开发环境搭建教程

    1.在安装JDK之前,先查看下自己电脑是否已经安装了JDK. 打开终端,输入java -version并回车.     从上图中可以看出我们已安装了,JDK 8.如果这个版本是你需要的版本,可直接看4 ...

  9. 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始i ...

随机推荐

  1. part10.2-字符设备驱动模型

  2. @loj - 2290@ 「THUWC 2017」随机二分图

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 一个左右各 n 个点的二分图,图中的边会按照一定的规律随机出现. ...

  3. linux服务器时间更新

    yum install ntpdate ntpdate ntp1.aliyun.com(阿里云服务器时间)

  4. poj 3743 LL’s cake (PSLG,Accepted)

    3743 -- LL’s cake 搞了好久都过不了,看了下题解是用PSLG来做的.POJ 2164 && LA 3218 Find the Border (Geometry, PSL ...

  5. MVC插件式开发平台

    ---恢复内容开始--- 经过DyOS.BraveOS1.0再到BraveOS2.0,系统现在已经开发了下载. 我们的目标是,网页版操作系统,可以在线安装更新软件,并提供二次开发平台,提供基础的逻辑和 ...

  6. jq制作tab栏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Codeforces Round #190 (Div. 1 + Div. 2)

    A. Ciel and Dancing 模拟. B. Ciel and Flowers 混合类型的数量只能为0.1.2,否则3个可以分成各种类型各自合成. C. Ciel and Robot 考虑一组 ...

  8. Java 自带性能监控工具:监视和管理控制台 jconsole 的使用

    1. 前言想验证你对 jvm 配的一些调优参数(比如 Xms.Xmx 等)有没有起作用吗?想不想实时监控你自定义的线程池的在实际运行时的线程个数.有没有死锁?应用出现 java.lang.OutOfM ...

  9. windows常用命令行命令

    https://blog.csdn.net/qq_32451373/article/details/77743869 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗 ...

  10. element-ui tree 根据不同叶子节点设置是否显示复选框

    公司业务要求不同根节点配置显示与否复选框,官方文档没有这样的配置,所以想到了修改element-ui源码. 1.这里将“node_modules\element-ui\packages”下的tree文 ...