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环境配置及样例执行的更多相关文章

  1. HNU_团队项目_数据库框架Mybatis_环境配置和样例

    前言 数据库从最传统的JDBC连接方式和数据库池化技术到Hibernate的使用,再到Mybatis的快捷轻量级操作,技术迭代的速度飞快. 在了解了基础的理论和方法后,学习前沿编程框架.工具,我认为是 ...

  2. Nginx 简单的负载均衡配置演示样例

    近期在做开放查询应用的时候,因为数据两天特别多,两千多万条呢,用户訪问需求也比較大,所以就用nginx做了 负载均衡,以下是改动之后的相关内容. http://www.cnblogs.com/xiao ...

  3. Spring @Transaction配置演示样例及发生不回滚原因深度剖析

    背景 近期在公司做的一个项目,用的是SpringMVC框架,数据库用的是MySql,刚開始并没有增加事务,后因业务须要必须事务处理. 问题的产生和解决 使用事务,直接问百度,我选择的是注解的方式. 在 ...

  4. AOP经典2种配置演示样例

    第一种: 使用aop指定切面aspect. <bean id="LogAdvice" class="com.thinkmore.framework.monitor. ...

  5. EEPlat vs saleforce 配置 Knowledge Article 演示样例

    ==================================================================================================== ...

  6. Nginx完整配置配置样例【官方版】

    我们主要参考nginx官方给出的完整配置的样例: https://www.nginx.com/resources/wiki/start/topics/examples/full/# 完整摘录如下: n ...

  7. JBoss 系列一 O O:Maven jBPM 6 集成演示样例

    概述 jBPM 6 中底层架构基于 Maven,所以我们能够非常easy的进行 Maven jBPM 6 集成演示样例,本文分三个部分: 基本原理介绍 Maven jBPM 6 集成 jBPM 6 中 ...

  8. Python+Selenium笔记(一):环境配置+简单的例子

    #环境配置基于windows操作系统 #学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵) #HTML :  http ...

  9. 图解VC++ opengl环境配置和几个入门样例

    VC6下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 demoproject和glut库下载 http://pan.baidu. ...

随机推荐

  1. 【转】vscode: Visual Studio Code 常用快捷键

    原文链接:https://www.cnblogs.com/bindong/p/6045957.html vscode: Visual Studio Code 常用快捷键 主命令框 F1 或 Ctrl+ ...

  2. git log 中文乱码问题(浪费了一天)

    git log和gitcommit中文出现乱码,花了大半天的时间试了网上的各种方法,还是搞不定. 只好放大招. 卸载软件后重装,还没有进行任何配置,git config --list 发现有大量的配置 ...

  3. 五十个小技巧提高PHP执行效率(一)

    在项目开发过程中,经常遇到了一些PHP处理程序性能底下的情况,程序运行在centos+nginx环境,虽然这个有很多的原因如:服务器本身配置,运行环境nginx服务,php-fpm配置等等,更多有一点 ...

  4. 如何打包静态库.framework文件 iOS

    代码调试好了开始打包成sdk,下面是将要打包的FRSDK代码(FRSDK.h暴露在外面有别人调用) 1.创建新工程(Xcode File-New-Project) 2.把下面的红色框的东西移除 3.将 ...

  5. Vue单页面骨架屏实践

    github 地址: VV-UI/VV-UI 演示地址: vv-ui 文档地址:skeleton 关于骨架屏介绍 骨架屏的作用主要是在网络请求较慢时,提供基础占位,当数据加载完成,恢复数据展示.这样给 ...

  6. python3.6 urllib.request库实现简单的网络爬虫、下载图片

    #更新日志:#0418 爬取页面商品URL#0421 更新 添加爬取下载页面图片功能#0423 更新 添加发送邮件功能# 优化 爬虫异常处理.错误页面及空页面处理# 优化 爬虫关键字黑名单.白名单,提 ...

  7. models中的pk主键用法

    class FrontUserModel(models.Model): uid = models.UUIDField(primary_key=True,default=uuid.uuid4) emai ...

  8. java傻瓜简单100%一定看的懂新手安装教程

    1.java官网   最新的不是很稳定 http://www.oracle.com/technetwork/java/javase/downloads/index.html 一直点下一步就可以,但别忘 ...

  9. WINDOWS java 不能正常卸载 问题, (其他系统问题 也可以试试)

    1.JAVA 原安装包无法卸载  不知道 有没有通知 碰到过这种情况的 自己碰到过3次这种情况了,    卸载不掉, 在网上 找了N多中 方法, 注册表什么的都被翻烂了, 单还是没用,其中有一次还把 ...

  10. Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题

    今天在做demo时,须要设置ListView的item的长按和点击事件.OnItemLongClickListener和OnItemClickListener,然而点击事件能够实现,可是在长按操作时会 ...