Macaca环境配置及样例执行
1、Macaca简介
macaca是由阿里巴巴公司开发的一套自动化解决方案,适用于PC端和移动端。Macaca基于Node.js开发,测试案例编写语言暂时也只支持Node.js。
2、Macaca与Appium区别
坦白说,这种外部驱动instruments的server-client自动化测试框架,在iOS上实现方式非常受限的,所以其底层的实现方式是一致的。
而在应用级上的封装,二者均采用了Node.js作为开发语言,接口也基于web-driver实现,所以Macaca和Appium相似程度非常高。
如何看待Macaca和Appium区别?
以下是Macaca作者的设计思想:appium 是个优秀的工具。但无法满足更轻、更快、更稳、更易集成、更贴合业务的高要求。可以认为Macaca是一个轻量级的Appium。当然,这就意味着很多Appium的功能会没有了。
3、Macaca特点
- 支持移动端和PC端
- 支持Native, Hybrid, H5 等多种应用类型
- 提供客户端工具和持续集成服务
4、安装
1)安装Xcode,Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由苹果公司开发(Windows操作系统略)
IOS使用brew命令,使用brew命令需要安装Homebrew(一款常用的 MacOS 的包管理器)
2)Node.js 由官网下载安装
输入命令:node -v 确认安装是否成功,npm是Node.js包管理,之后装Macaca就是用它,所以下一步就是安装npm
3)安装npm(cnpm),输入npm install -g cnpm --registry=https://registry.npm.taobao.org
输入cnpm -v 确认是否安装成功
了解更多淘宝NPM镜像,详见地址:http://npm.taobao.org/
4)安装Macaca 输入cnpm i macaca-cli -g 看到可爱的小猴子说明安装成功了

5)安装webdriver-client 输入cnpm install webdriver-client
6)安卓的需要安装JDK和安卓SDK
7)安装macaca-electron 输入cnpm install macaca-electron -g
macaca-electron是基于Electron开发的Macaca驱动,是Macaca驱动之一
8)安装mocha,输入命令 npm install mocha -g
mocha是一款功能丰富的js单元测试框架,详见http://www.cnblogs.com/tzyy/p/5729602.html#_h1_2 (非常好的博客)
mocha是node.js下常用的测试框架,安装前必须先安装node,配置好相应的环境变量,mocha也需要配置,安装后输入mocha -h有显示说明安装成功。
9)根据自身需要安装其他驱动,如:

安装环境检查,输入命令:macaca doctor

有红色标识,说明还有配置没有完成。图中的Gradle是一个基于JVM的构建工具,各版本下载地址:http://services.gradle.org/distributions/
Macaca升级后是用Gradle来构建和部署,所以需要配置
下载压缩包解压即可,安装好后配置环境变量
GRADLE_HOME指向gradle的安装路径,path环境变量添加 %GRADLE_HOME%\bin
查询版本:gradle -v 如果没有结果尝试一下重启cmd
10)安装定位工具 cnpm install app-inspector -g
检查是否安装成功:app-inspector -u 设备id
【如果需要重装则先卸载,管理员权限执行。 npm uninstall macaca-android -g; npm cache clean】
示例测试
1、下载样例脚本:https://github.com/macaca-sample/sample-java
2、打开一个终端,进入工程目录,启动Macaca服务
命令:cd +demo目录,注:一定要进入到脚本存放目录
macaca server --verbose
追加--verbose参数,为了查看启动中的详细信息
3、在打开一个cmd窗口,执行mvn -s settings.xml clean install -Dmaven.test.skip=true (前提需要安装maven)
注:mvn -s的作用在于使maven以工程目录下的settings.xml文件为依据下载依赖,但是实践中发现部分同学会出现mvn -s无法生效的作用,这样会导致依赖下载失败,这种情况下,需要大家将工程目录下的settings.xml中的配置相应的添加到本地settings中。
4、输入mvn test 或 mvn test -Dtest=macaca.client.DesktopSampleTest

Macaca环境配置及样例执行的更多相关文章
- HNU_团队项目_数据库框架Mybatis_环境配置和样例
前言 数据库从最传统的JDBC连接方式和数据库池化技术到Hibernate的使用,再到Mybatis的快捷轻量级操作,技术迭代的速度飞快. 在了解了基础的理论和方法后,学习前沿编程框架.工具,我认为是 ...
- Nginx 简单的负载均衡配置演示样例
近期在做开放查询应用的时候,因为数据两天特别多,两千多万条呢,用户訪问需求也比較大,所以就用nginx做了 负载均衡,以下是改动之后的相关内容. http://www.cnblogs.com/xiao ...
- Spring @Transaction配置演示样例及发生不回滚原因深度剖析
背景 近期在公司做的一个项目,用的是SpringMVC框架,数据库用的是MySql,刚開始并没有增加事务,后因业务须要必须事务处理. 问题的产生和解决 使用事务,直接问百度,我选择的是注解的方式. 在 ...
- AOP经典2种配置演示样例
第一种: 使用aop指定切面aspect. <bean id="LogAdvice" class="com.thinkmore.framework.monitor. ...
- EEPlat vs saleforce 配置 Knowledge Article 演示样例
==================================================================================================== ...
- Nginx完整配置配置样例【官方版】
我们主要参考nginx官方给出的完整配置的样例: https://www.nginx.com/resources/wiki/start/topics/examples/full/# 完整摘录如下: n ...
- JBoss 系列一 O O:Maven jBPM 6 集成演示样例
概述 jBPM 6 中底层架构基于 Maven,所以我们能够非常easy的进行 Maven jBPM 6 集成演示样例,本文分三个部分: 基本原理介绍 Maven jBPM 6 集成 jBPM 6 中 ...
- Python+Selenium笔记(一):环境配置+简单的例子
#环境配置基于windows操作系统 #学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵) #HTML : http ...
- 图解VC++ opengl环境配置和几个入门样例
VC6下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 demoproject和glut库下载 http://pan.baidu. ...
随机推荐
- thinkphp 使用插件异步上传图片或者文件
使用tp做一些上传的功能,的确挺方便.但是在一些特殊情况下无法单独的使用tp的上传功能, 或者需要做一些比较酷炫的上传效果,这里就需要用到框架了. 我在这里使用的是uploadify上传插件. 首先需 ...
- 在Github发布自己的compile包
Android入门到转行做服务员--在Github发布自己的compile包 2017-12-05 15:27:10 这是一粒代码发布的第一篇博客,一粒代码从事android开发,近期打算开始搞搞博客 ...
- python并发编程之多进程一
一,什么是进程 进程是操作系统结构的基础:是一个正在执行的程序:计算机中正在运行的程序实例:可以分配给处理器并由处理器执行的一个实体: 二,进程与程序的区别 进程即运行中的程序,从中即可知,进程是在运 ...
- npm install 时报错 Unexpected end of input at 1:15930
从github上clone代码后npm install,结果解决办法: npm config set registry https://registry.npm.taobao.org之后出现自动生成了 ...
- zoj 3195 Design the city LCA Tarjan
题目链接 : ZOJ Problem Set - 3195 题目大意: 求三点之间的最短距离 思路: 有了两点之间的最短距离求法,不难得出: 对于三个点我们两两之间求最短距离 得到 d1 d2 d3 ...
- svn搭建文档
1.制作本地yum源 a)挂载光盘 [root@localhost ~]# mount /dev/cdrom /mnt b)删除/etc/yum.repos.d目录所有的repo文件 [root@ ...
- angularjs 利用$http 请求出现 400 Bad Request
1. 出现400错误-代表错误的请求,说明我们的参数有问题 说明此时传入的参数存在问题,我们看下此时参数的格式是什么: 此时的参数是对象格式,查了一下,如果利用ajax格式传输数据的话,参数必须是js ...
- 阿里安全潘多拉实验室首先完美越狱苹果iOS 11.2
苹果官方对iOS 11的评价是"为iPhone带来巨大进步,让iPad实现里程碑式飞跃."但为了不断修复Bug,苹果于12月2日推出最新的iOS 11.2,修复了Google安全人 ...
- Windows2000源代码 200+MB
全球最大的软件制造商微软2月12日警告公众称其一部分珍贵的Windows NT和Windows 2000操作系统源代码被泄漏到了一些在线文件共享网络中. 微软称被泄漏的代码只是整个程序的一小部分,但这 ...
- java内存模型个人理解总结
现阶段线程之间的通讯主要有两种:内存共享和消息传递,而且在java中是采用的内存共享.简单说下内存共享: 假设现在有a线程和b线程,在a和b线程之间的通讯是依靠a线程将相关数据刷新到共享内存,然后b线 ...