兜兜转转试用了一圈自动化框架后,回归到appium,与一年之前相比,appium有了很大的改变:
1、iOS 9 之前一直以 instruments 下的 UIAutomation为驱动底层技术(弊端由于 instruments 的限制,单台 mac 只能对应单台设备);
2、iOS 9.3 时代推出 XCUITest 工具,用以替代 UIAutomation;
3、iOS 10 时代苹果直接废弃了 UIAutomation、Facebook 推出 WebDriverAgent(实现的 server 能够支持单台 mac 对应多个设备);4、Appium 在iOS 9.3 后全面采用 WebDriverAgent 的方案。

其次,重中之重:版本很重要,我的是:xcode9.3 + node10.11.0 + appium1.7.0,如果根据以下配置仍然不能成功运行,那么99%是版本的问题

下面开始逐个安装
1、安装node
brew install node
通过这种方法安装的node是最新版本,因为我本地需要有node 8.1.1版本,所以使用nvm进行安装
备注:nvm的安装和使用

2、下载Xcode 和 Command Line Tools:需要有个AppleID,并根据自己电脑OS版本下载所需版本

下载后直接安装即可,注意Xcode保持在application文件夹下只有一个唯一版本

3、下载安装JDK

下载完成后直接安装即可

4、安装Android SDK
很多资料都推荐使用brew安装,但是实践后发现SDK文件为空,所以使用Android studio来安装

如果打开Android studio报错,直接cancel到下一步即可;若使用default方式安装,也可以在configuration里重新下载相关tools

5、安装appium最新版本

这里不使用npm下载方式是因为下载过程较长,且容易报错

6、安装appium-doctor
npm install -g appium-doctor

7、配置Android环境变量
在 ~/.bash_profile文件中添加path

export ANDROID_HOME=~/Library/Android/sdk/
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home #jdk安装路径
export PATH=~/bin:$PATH:/usr/local/bin:$ANDROID_HOME/platform-tools/:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
在appium的configurations里设置:

、安装其他依赖
brew install libimobiledevice --HEAD
npm install -g ios-deploy
brew install carthage

libimobiledevice / ideviceinstaller 库:相当于 android 的 adb,是 Appium 底层用到的工具之一,用于获取 iOS 设备信息
ios-deploy:查看设备应用
carthage:类似于 java 的 maven,项目依赖管理,主要是 WebDriverAgent 使用
9、配置WebDriverAgent
(1)首先进入WebDriverAgent所在文件目录下:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
(2)根目录下执行:
./Scripts/bootstrap.sh
(3)打开WebDriverAgent.xcodeproj工程文件
(4)添加自己的account:Xcode -> Preferences -> account -> 左下角 +
 

(5)更改bundle id:这里的bundle id就相当于一个App的唯一识别号,更改的规则随意,只要确认不会与有重复即可;所有的targets都需要修改

10、验证是否环境已经安装成功了
(1)终端输入:appium-doctor
如果环境都已配置好,应该是文章最开始图片中的结果
(2)运行WebDriverAgentRunner

按照图中
1:选择scheme为WebDriverAgentRunner -> 2:选择运行设备,模拟器和真机都可以 -> 3:选择要构建的方式 ->4:选择Test方式
的步骤验证是否能成功运行WebDriverAgentRunner

如果真机运行后弹出需要在设置中信任证书,

Verify the Developer App certificate for your account is trusted on your device. Open Settings on iPhone and navigate to General -> Device Management, then select your Developer App certificate to trust it.

按照步骤操作后,重新运行就可以了

成功运行结果图:

11、遇到的问题总结
1、appium版本不支持xcode版本(需要调用XCUITest),重新下载可匹配的Xcode版本
Xcode9.3 + Appium1.6.4时,运行WebDriverAgentRunner报错
Early unexpected exit, operation never finished bootstrapping - no restart will be attempted

解决方法:更新Appium版本到1.7.0

2、appium无法调起webdriverrunner(webdriveragent更新),查看是否因为webdriveragent证书签名、依赖framework、serverURL抛出错误信息
安装依赖framework时报错:

Falling back to building from the source
A shell task (/usr/bin/xcrun xcodebuild -project /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Carthage/Checkouts/CocoaAsyncSocket/CocoaAsyncSocket.xcodeproj CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES -list) failed with exit code 72:
xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH

解决方法:选择Command Line Tools

Xcode -> Preferences -> Locations -> Command Line Tools

3、长时间测试,server中断,这个无法解决,appium自身问题
4、webdriveragent启动失败,status、inspector无法正常查看,查看版本
5、appium脚本启动失败,查看脚本中的配置

Appium超详细环境搭建for Mac的更多相关文章

  1. (转)超详细单机版搭建hadoop环境图文解析

                        超详细单机版搭建hadoop环境图文解析   安装过程: 一.安装Linux操作系统 二.在Ubuntu下创建hadoop用户组和用户 三.在Ubuntu下安装 ...

  2. 超详细动手搭建一个Vuepress站点及开启PWA与自动部署

    超详细动手搭建一个Vuepress站点及开启PWA与自动部署 五一之前就想写一篇关于Vuepress的文章,结果朋友结婚就不了了之了. 记得最后一定要看注意事项! Vuepress介绍 官网:http ...

  3. OpenGL环境搭建Windows+Mac+Linux

    OpenGL环境搭建Windows+Mac+Linux Mac平台下 下载列表:GLFWcmake 下载的GLFW解压缩 然后安装cmake, 安装好cmake之后打开 1.browse source ...

  4. Mac+Appium+Python+Pycharm环境搭建

    为什么优先选择Mac做自动化测试? 1.既可以做iOS端的测试也可以进行Android端测试 2.Mac运行效率相对于Win要高很多,可以真正发挥appium的功能 以下是在Mac上完整搭建过程 一. ...

  5. Appium环境搭建(win/mac)

    课程使用Windows+Android虚拟机, 建议使用Windows系统学习课程, 如使用Mac系统, 请另外准备一台Andorid手机 Windows系统Appium环境搭建 安装JDK并配置环境 ...

  6. (appium+python)UI自动化_01_自动化环境搭建【MAC版】

    Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...

  7. Appium环境搭建(MAC版)

    一.环境搭建 (1)安装node.js brew install node (2)安装Xcode 测试iOS App需要.打开Finder,在Applications文件夹下,看是否有Xcode.ap ...

  8. Appium环境搭建(Mac)

    为什么选择Mac做自动化测试? 既可以做iOS端的测试也可以进行Android端测试 Mac运行效率相对于Win要高很多,可以真正发挥appium的功能 环境依赖 Node.js Appium App ...

  9. Appium入门指南 - 环境搭建和Case编写

    本文档将详细介绍如何搭建 Appium 的运行环境,以及如何编写一个简单的 UI 自动化测试用例.其中,也会穿插讲解一些 Appium 的基本知识.关于 Appium 的更多信息,大家可以查看官方文档 ...

随机推荐

  1. Dynamics 365 CRM 在 Connected Field Service 中部署 IoT Central (一)- 配置 IoT Central和IoT alert

    今天这个系列给大家带来怎样在connected field service中部署IoT Central 并且做连接. 首先, 这里提供微软官方的tutorial的链接https://docs.micr ...

  2. Java容器解析系列(16) android内存优化之SparseArray

    HashMap的缺点: 自动装箱导致的性能损失; 使用拉链法来解决hash冲突,如果hash冲突较多,需要遍历链表,导致性能下降,在Java 8 中,如果链表长度>8,会使用红黑树来代替链表; ...

  3. ios--->cell里面 self 和self.contentview的区别

    一般我们向cell中添加子视图,有两种方式 [cell addSubview:] [cell.contentView addSubview:] 区别在于进行cell编辑时,比如cell内容向左移或者右 ...

  4. Shell与进程

    查看当前运行的进程 名称: ps 使用权限: 所有使用者 使用方式: ps [options] [--help] 说明: 显示瞬间行程 (process) 的动态 参数: ps的参数非常多, 在此仅列 ...

  5. Java8新特性一点通 | 回顾字符转日期&JoinArray使用

    StringToDate日期转换 Join Array使用 StringToDate日期转换 Convert string to date in ISO8601 format 利用LocalDate. ...

  6. Leetcode | 刷题日记(1)

    本文记录个人刷题记录 推荐两个刷题网站: 地址:https://leetcode.com/ 另外一个地址:http://www.lintcode.com/ 1.Write a SQL query to ...

  7. android之Activity的创建与关闭

    Activity的启动和关闭 1.启动activity activity的启动分为两种,一种为入口activity,另一种为其他activity 在AndroidManifests进行配置,入口act ...

  8. 二、Django学习之增删改查

    增加数据 第一种方式 def index(request): #创建记录方式1 #实例化要添加的记录(对象) student_obj = models.Student( name='dazhuang' ...

  9. SpringBoot学习遇到的问题(1) - 配置文件有日志的debug模式等配置项,为什么不起作用

    这个问题困扰我近乎两天,通过查找N多资料后终于解决,写下来共享给大家. logging.level.root=DEBUG ... 一系列的日志配置项,都不起作用的原因是springboot启动加载不到 ...

  10. k3s首季在线培训来袭!本周四晚,线上见!

    筹备已久的k3s在线培训终于要和大家见面啦! k3s是一款适用于边缘计算场景以及IoT场景的轻量级Kubernetes发行版,经过CNCF的一致性认证.由业界应用最广泛的Kubernetes管理平台R ...