macaca-java for ios 自动化环境搭建

基础原理解析:https://testerhome.com/topics/6608

一、环境搭建

1、安装eclipse; -----Java开发调试工具 下载地址:https://www.eclipse.org/downloads/ PS:java调试工具,可根据自身情况选择不下载。

2、安装node.js 中文网地址:http://nodejs.cn/ node.js安装方式一: (1)安装brew

/usr/bin/ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)" (2)安装node

brew install node (3)验证node安装

验证node安装:node -v

验证npm安装:npm -v node.js安装方式二: (1)安装node

访问node.js官网(https://nodejs.org/en/download/),下载安装包,一键安装; (2)验证node安装

node -v npm -v 3、安装xcode

进入https://developer.apple.com/download/more/网站找到要下载版本的xcode(xcode安装需要8.3或更高的版本),下载安装。

PS:可以在appstore上下载xcode,但只支持最新版本。 4、安装usbmuxd ----通过 USB 通道测试 iOS 真机

brew install usbmuxd
5、安装ios-webkit-debug-proxy ----被测试应用中包含webview时安装

brew install ios-webkit-debug-proxy 6、安装ios-deploy 装包工具

npm i ios-deploy -g 7、安装carthage

brew install carthage
PS:Macaca XCTestWD 的代码管理使用carthage

8、安装macaca
npm i -g macaca-cli ----macaca命令集

npm i -g macaca-ios ----macaca-ios自动化驱动

macaca doctor ----检查macaca环境 8、安装inspector

npm i app-inspector -g

PS:卸载命令:npm uninstall app-inspector -g 9、安装maven

brew install maven 10、下载iOS自动化框架代码

下载SVN上的iOS自动化框架代码,路径:https://******/product/qa-platform/automation/iOSMacaca/ios_a utomation/;

进入工程目录;

安装工程依赖库:mvn -s settings.xml clean install -DskipTests

如果下载依赖过程中报错,可能是由于mvn -s命令没有生效导致的,建议将根目录下settings.xml中的依赖配置到本地Maven目录下的settings.xml中

本地目录:/usr/local/Cellar/maven/3.3.9/libexec/conf

PS:eclipse与maven的关联配置这里不做介绍,如果后续有需求会补充到此文档。 11、xctestwd配置

macaca的webdriver存在两个,一个为app-inspector调试需要,一个为iOS自动化需要,路径分别为: /usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD/XCTestWD.xcodeproj

----app-inspector启动需要配置

/usr/local/lib/node_modules/macaca-ios/node_modules/xctestwd/XCTestWD/XCTestWD.xcodeproj ----ios自 动化需要配置

macaca的两个webdriver配置相同,下面会主要以macaca-ios为例来介绍配置: (1)安装证书,证书下载地址:https://*******/iQIYITest/product/qa-platform/automation/iOSMacaca/identifier/

ios_automation.p12 (证书密码:123456); (2)下载profile,profile下载地址:https://*******/product/qa-platform

/automation/iOSMacaca/identifier/ios_automation.mobileprovision; (3)使用xcode打开/usr/local/lib/node_modules/macaca-ios/node_modules/xctestwd/XCTestWD/XCTestWD.xcodeproj工程文件; (4)配置XCTestWD,选择XCTestWD target,配置Gerneral中的sign以及Build Settings中的signing,具体见下图:

(5)配置

XCTestWDUITests,选择XCTestWDUITeststarget,配置Gerneral中的sign以及Build Settings中的signing,具体见下图:

 

(6)使用xcode打开/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD/XCTestWD.xcodeproj工程文件,分别按 照(4)(5)进行配置。

PS:如果设备不可用,无法将xctestwd安装到设备上请自行更新profile文件。

二、模拟器运行

1、启动macaca server macaca server --verbose

2、执行用例
新建窗口进入macaca Java的demo工程根目录命令行执行:mvn test

三、inspector使用

1、启动macaca server macaca server --verbose

2、获取device 的udid 设备的udid获取方式如下:

(1)模拟器获取设备udid:xcrun simctl list ; (2)查看模拟器&连接设备udid:instruments-s ; (3)连接设备udid:xcode查看Hardware ->devices -> manage devices 。

3、运行webdriver
打开xcode,选择WebDriverAgentRunner target,将webdriver运行到连接的设备上。

4、launch
app-inspector -u YOUR-DEVICE-ID --verbose

5、使用inspector元素查找工具 浏览器打开:http://current_ip:5678或http://localhost:5678

四、真机运行

1、连接设备

MAC连接能运行测试包的设备

2、启动macaca server

macaca server --verbose

3、修改java代码中的运行配置

目前的运行配置以macaca提供的demo为例。

(1)修改工程文件中的bootstrap/src/test/java/com/javademo/utils/Config.java文件以便于可以真机运行,以下为Config.java文件中的 代码片段:

// ios平台相关信息

publicstaticfinalString IOS_PLATFORM_NAME ="iOS";

publicstaticfinalString IOS_DEVICE_NAME ="Ranli1"; //连接设备的name

publicstaticfinalString IOS_APP = RootPath + File.separator +"app/iQiYiPhoneVideo.app_2017-01-15_18-52.zip";

包的路径,请放置开发包
publicstaticfinalString IOS_UDID ="40911ef567d57fcff5813d774fdeb108eaefde1b"; //连接设备的udid publicstaticfinalString IOS_BUNDLE_ID ="************"; //测试安装包的bundle id

(2)修改工程文件中的bootstrap/src/test/java/com/javademo/cases/BaseTest.java 文件以便于Config.java文件中配置的设备信息何以传递到server,以下为BaseTest.java的代码片段:

4、执行用例
新建窗口进入macaca Java的demo工程根目录命令行执行,命令如下:

全部case运行:mvn test 单条case运行:mvntest-Dtest=packagename.classname(mvntest-Dtest=*****.cases.baseline.offline.function.Test_21674

1)

iOS自动化环境搭建——macaca的更多相关文章

  1. iOS自动化环境搭建(超详细)

    1.macOS相关库安装 libimobiledevice > brew install libimobiledevice 使用本机与苹果iOS设备的服务进行通信的库. ideviceinsta ...

  2. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  3. appium ios真机自动化环境搭建&运行(送源码)

    appium ios真机自动化环境搭建&运行(送源码) 原创: f i n  测试开发社区  6天前 Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路 首先是熟悉Mac的使用 ...

  4. MAC自动化环境搭建

    UI自动化环境搭建 第一阶段:配置appium环境硬件配置mac系统电脑 java环境sunjiedeMacBook-Air:~ vicent$ java -versionjava version & ...

  5. 基于python的App UI自动化环境搭建

    Android端Ui 自动化环境搭建 一,安装JDK.SDK 二,添加环境变量 Widows:1.系统变量→新建 JAVA_HOME 变量E:\Java\jdk1.7.0 jdk安装目录 2.系统变量 ...

  6. 手机APP自动化环境搭建

    1 摘要 近年来,随着移动应用从数量上和逻辑复杂程度上的增长,以及产品发布周期的紧缩,使得回归测试迫在眉睫,鉴于此APP自动化测试变得越来流行,当前主流的APP自动化工具有:Appium.Roboti ...

  7. 团队自动化环境搭建与管理--php博弈

    我是方少,很开心与大家日后与大家交流技术上面的一些想法和一些业务上的分享.以前从来没写过博客,因为觉得不重要吧,如今觉得有必要沉淀一些想法和回忆.好了费话不多说. 先上图: 业务问题:在每次新伙伴加入 ...

  8. React Native IOS ---基础环境搭建(前端架构师)

    React Native -IOS 开发环境搭建 web架构(基础) 安装依赖 * 必须安装的依赖有:Node.Watchman 和 React Native 命令行工具以及 Xcode. npm 镜 ...

  9. Java自动化环境搭建笔记(3)

    Java自动化环境搭建笔记(3) 自动化测试 自动化的环境已经基本搭建完成,后续可对BaseTester基类以及工具类进行扩展.下面便是持续集成的环境的搭建: Jenkins安装 git安装 源码上传 ...

随机推荐

  1. MiniProfiler工具

    MiniProfiler工具介绍   MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性能分析的轻量级程序.可以对一个页面本身,及该页面通过直接引用.Ajax. ...

  2. ini文件必须要全路径名啊

    弄半天必须要全路径名啊.实在不行用./set.ini也可以 用UNICODE保存ini文件

  3. MySQL在高版本需要指明是否进行SSL连接问题

    Java使用mysql-jdbc连接MySQL出现如下警告: Establishing SSL connection without server's identity verification is ...

  4. CSS基础知识摘要

    元素分类 块级元素 什么是块级元素?在html中<div>. <p>.<h1>.<form>.<table>.<ul> 和 &l ...

  5. 201521123091 《Java程序设计》第2周学习总结

    Java 第二周总结 第二周的作业. 一个简陋的目录 1.本章学习总结 2.Java Q&A 3.使用码云管理Java代码 4.PTA实验 5.小任务 1.本章学习总结 基本数据类型 Stri ...

  6. 团队作业八——第二次团队冲刺(Beta版本)第3天

    一.每个人的工作 (1) 昨天已完成的工作 对界面进行完善,并增加简单界面(包含简单界面内含的界面),简单模式与复杂模式的选择界面. (2) 今天计划完成的工作 做一下用户注册的功能和登录功能. (3 ...

  7. 团队作业4——第一次项目冲刺(Alpha版本)3rd day

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 1.界面 界面已初步完成并能够进行简单的界面关联 界面内的功能正在完善 2.登陆方面 QQ授权已申请,等待通过 申请通过后在登 ...

  8. 201521123016《Java程序设计》第10周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? 只有执 ...

  9. jvm系列:Java GC 分析

    Java GC就是JVM记录仪,书画了JVM各个分区的表演. 什么是 Java GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之 ...

  10. JVM 运行时数据区总结 栈 堆 堆大小配置总结

    1. 程序计数器 线程私有 当前线程所执行的字节码的行号指示器 2. 虚拟机栈 线程私有 存:Java方法(局部变量表(基本数据类型).操作数栈.动态链栈.方法出口) StackOverflowErr ...