兜兜转转试用了一圈自动化框架后,回归到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. Qt常用UI控件读取、写入方法

    本文用途:快速备忘,方便调用,写熟了自然就记下了. [1.标签label] 读取:ui->label->text() 写入:ui->label->setText("p ...

  2. jenkins集成jmeter-进阶篇

    1.gitlab自动触发jenkins构建 1⃣️安装插件: 2⃣️新建工程,设置git url,build when a change is pushed auto.sh /bin/sh echo ...

  3. HTML中CSS引用——选择器的使用

    一.元素选择器     1.书写格式:标记名{/*生命块*/}     2.所有与该标记匹配的元素,都将应用声明块中的规则 二.类选择器     1.书写格式:.类名{/*声明块*/}         ...

  4. API文档自动生成,Swagger的配置

    ASP.NET的部署方式 第一步:引用程序集 打开NuGet程序包管理器,搜索Swagger,安装第一个,注意画圈的地方, 已经包含主程序和UI了,安装完成后会在根目录App_Start文件夹下生成S ...

  5. 3d动态文字的绘制

    在这里介绍一种3D文字的一种动态效果,可以说这是一种伪3D创建的一种3D的视觉效果 简单的讲解一下:大家或多或少都会听说过素描这种绘画手法,其实这种手法就是巧妙的利用了.阴影给人们带来的立体的视觉冲击 ...

  6. java web 各个文件夹命名原因

    今天突然被同学问然后就发现,自己有很多的疑问: (1) 为什么servlet的配置文件,命名为 web.xml , 内部是如何读取的,原因就是他内度的工作原理 (2) webINF Src 文件为什么 ...

  7. vuex之Mutation(三)

    说明 既然我们可以取出数据,就可以修改数据,而修改数据并不是像修改data的数据一样,直接 this.xxx = xxx,这样有一个问题,在实际开发中,state的数据一般会多个组件共享,如果可以使用 ...

  8. python中的变量和字符串

    一.变量 1.python变量 *变量用于存储某个或某些特定的值,它与一个特定标识符相关联,该标识符称为变量名称.变量名指向存储在内存中的值.在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解 ...

  9. 《 Java 编程思想》CH02 一切都是对象

    用引用操纵对象 尽管Java中一切都看作为对象,但是操纵的标识符实际上对象的一个"引用". String s; // 这里只是创建了一个引用,而不是一个对象 String s = ...

  10. 未来JDK中将不再包含JDBC-ODBC桥

    今天才发现一个重要问题,java中居然没有这个桥了.让初学者真的泪流了! 甲骨文公司主要技术人员.JDBC规范领导者Lance Andersen今天在博客中称,从Java SE 8(java 1.8版 ...