首先想要会Macaca,还得先会用github,不然你得死……因为各种例子都在git上,官网也一样,蛋疼的很……

#基础环境

1.JDK:jdk1.8-配置变量

2.Android SDK:sdk  25.0.2-配置变量

3.Cnpm:切换淘宝源,因为国外资源访问很慢,而且有些资源还无法下载(如果npm可以满足你的安装需求,可跳过此步):

npm install -g cnpm --registry=https://registry.npm.taobao.org 
$ npm i -g macaca-cli
// 等价替换
$ cnpm i -g macaca-cli

4.Node.js:要求v4.0及以上(据说v7.0的也不行,所以建议7.0以下)

5.XCode :要求v7.3及以上(用Mac的同学直接从AppStore安装就可以

#Macaca安装

1.macaca-cli:

cnpm i macaca-cli -g

6.webdriver-client:

cnpm install webdriver-client

7.各种驱动:

$ npm i macaca-ios -g
$ npm i macaca-android -g
$ npm i macaca-chrome -g
$ npm i macaca-electron -g  (desktop应用)

8.安装app-inspector,用于控件查找

$ npm i app-inspector -g

9.完成以上安装后,macaca doctor 校验安装环境

坑位总结

1.如果提示以下信息,请检查JDK版本。Version 52.0对应的是JDK1.8版本,于是更新本地JDK版本为1.8 问题成功解决。

[dx] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0

2..Android SDK问题,Macaca支持Android最低版本为API18, 请注意,另外build-tool请不要安装预览版。

3.关于pom.xml中引用macaca的jar包问题,这里需要去设置一下你在maven中引用的镜像地址,我在maven配置的文章中有介绍。如果不设置的话,在引用的时候会发现无法加载

测试用例编写

1.下载官方提供的Java版Demo用例

https://github.com/macaca-sample/sample-java

2.脚本分析

通过导入Maven项目,发现只有一个SampleTest.java类,后期官方更新版本只需要修改pom.xml中的版本号即可,便于维护。

SetUP()实例,针对于PC端:

@Before
public void setUp() throws Exception {
// 在setUp()中配置被测应用的基础信息,如平台版本,安装包地址等
Logger logger = Logger.getLogger(getClass());
JSONObject porps = new JSONObject();
porps.put("autoAcceptAlerts", true);
porps.put("browserName", "electron");
porps.put("platformName", "desktop");
porps.put("version", "");
porps.put("javascriptEnabled", true);
porps.put("platform", "ANY");
JSONObject desiredCapabilities = new JSONObject();
desiredCapabilities.put("desiredCapabilities", porps);
driver.initDriver(desiredCapabilities).setWindowSize(1280, 800).get("https://www.baidu.com");
}

针对移动端:

@Before
public void setUp() throws Exception { JSONObject porps = new JSONObject();
porps.put("autoAcceptAlerts", true);
porps.put("platformVersion", "9.3");
porps.put("deviceName", "iPhone 5s");
porps.put("platformName", "iOS");
// 指定待测应用的安装包
porps.put("app", "**/**/targetApp.zip");
JSONObject desiredCapabilities = new JSONObject();
desiredCapabilities.put("desiredCapabilities", porps);
driver.initDriver(desiredCapabilities);
driver.platform = "ios";
}

需要注意的是,对于iOS平台,app的安装包需要基于.app包压缩后的zip包,而不能用.ipa包进行压缩,对于模拟器,可以直接安装使用,但是对于真机,则需要涉及证书签名等问题,后期介绍。

另外,对于配置参数,iOS与安卓有各自特有的参数请结合官方文档使用。

用例编写

@Test
public void test_case_1() throws Exception {
driver
.elementById("kw")
.sendKeys("macaca")
.sleep(1000)
.elementById("su")
.click()
.sleep(3000); String html = driver.source(); Assert.assertThat(html, containsString("<html>")); driver
.elementByCss("#head > div.head_wrapper")
.elementByXPath("//*[@id=\"kw\"]")
.sendKeys(" elementByXPath")
.elementById("su")
.click()
.takeScreenshot();
}

以上是JavaScript写法,更简洁。

执行用例

Javascript版本的用例可以直接通过一条命令启动macaca server并运行case,而Java版的用例则需要单独启动Macaca server,然后执行测试用例

1.进工程目录:

$cd path/to/macaca-test-sample-java

2.启动Macaca Server:

$macaca server
追加--verbose,可查看启动详情
$macaca server --verbose

3.当前工程的目录下cmd

$mvn -s settings.xml clean install  (下载依赖包)
$mvn test (执行用例)

UI控件-Inspector

早期,查找控件依赖于Android自带的UIAutomator viewer,iOS则依赖于XCode中的Accessibility Inspector,但是这两种工具查找起来相对麻烦,效率相对低下,针对这个问题,Macaca团队提供了统一的Inspector工具,可以以Web的方式,方便的查看不论是安卓还是iOS的控件。

常用链接

Macaca官方教程

TestHome社区-Macaca一些技术贴

Macaca源码

Macaca环境搭建全教程的更多相关文章

  1. Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)

    win7(win10也适用)系统安装GPU/CPU版tensorflow Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程) 目录 2.配置 ...

  2. PHPCMS V9轻松完成WAP手机网站搭建全教程

    ---恢复内容开始--- 应用PHPCMS V9轻松完成WAP手机网站搭建全教程 用PHPCMS最新发布的V9搭建了PHPCMS研究中心网站(http://www.17huiyi.net)完成后,有用 ...

  3. [新手教程]windows 2003 php环境搭建详细教程(转)

    对于windows服务器的php环境配置一直是是新人朋友的难题,也难倒了很多高手.这里分享一个新手教程,给那些建站新人使用.本教程来自朋友吴文辉的博客,欢迎大家有时间可以访问他的博客:吴文辉博客htt ...

  4. macaca 环境搭建篇,(web 和安卓)

    appium研究一段时间,感觉appium太不稳定了, 后来听说了阿里开源了macaca,那么我就想尝尝鲜,啥都不说,我感觉还是赶紧上手搭建环境吧. macaca介绍: Macaca是一套完整的自动化 ...

  5. LNMP环境搭建详细教程

    之前有一篇博客写的是LAMP的环境搭建,今天来详细介绍一下另外一个模式——LNMP=Linux+Nginx+MySQL+PHP. 一.在Linux系统下nginx的安装过程,先到http://ngin ...

  6. 区块链学习——HyperLedger-Fabric v0.6环境搭建详细教程

    v0.6 的架构相对简单,适合作为实验或学习来使用. 一.环境准备 一台云服务器(笔者使用的是阿里云的1核-2GB内存) Go语言环境 Docker安装 docker-compose安装 二.环境搭建 ...

  7. 区块链学习——HyperLedger-Fabric v1.0环境搭建详细教程

    相对与v0.6版本来说,1.0版本改变较大,此处不多说,只是将小白自己搭建1.0环境的过程分享给大家.希望对大家能有所帮助! 这一篇可能对前面的环境搭建会写的有些粗略,如有疑问,可阅读上一篇V0.6版 ...

  8. Macaca环境搭建(二)----uirecorder PC录制

    上一节我们安装好了macaca环境,这节我们来进行PC录制: 一.安装UI Recorder 命令窗口输入:npm install uirecorder mocha -g 二.初始化配置 1.创建文件 ...

  9. Myeclipse10 + JBPM4.4 环境搭建图文教程

    一.软件环境 IDE:Myeclipse10.0 (jbpm4.0以上版本好像只能与Myeclipse7.5以上版本集成) JBPM:4.4 与Myeclipse集成 1.解压jbpm-4.4.zip ...

随机推荐

  1. if 的一切

    第一种语法: if 条件: # @引号是为了把条件和结果分开. 结果1 # 一个Tab或者4个空格 @告诉程序满足上面的if条件才会执行结果1结果2 如果条件为真(True),执行结果1,然后执行结果 ...

  2. MapReduce实例&YARN框架

    MapReduce实例&YARN框架 一个wordcount程序 统计一个相当大的数据文件中,每个单词出现的个数. 一.分析map和reduce的工作 map: 切分单词 遍历单词数据输出 r ...

  3. JS定时器相关用法

    一.定时器在javascript中的作用 1.制作动画 <!DOCTYPE html> <html lang="en"> <head> < ...

  4. echarts中datazoom相关配置

    dataZoom=[ //区域缩放 { id: 'dataZoomX', show:true, //是否显示 组件.如果设置为 false,不会显示,但是数据过滤的功能还存在. backgroundC ...

  5. Django 自定义模板标签和过滤器

    1.创建一个模板库 使用模板过滤器的时候,直接把过滤器写在app里,例如:在app里新建一个templatetags的文件夹,这个目录应当和 models.py . views.py 等处于同一层次. ...

  6. CPU中MMU的作用

    http://blog.csdn.net/jjw97_5/article/details/39340261 MMU是个硬件,每当cpu访问一个地址的时候,MMU从内存里面查table,把cpu想访问的 ...

  7. django操作多数据库

    django操作多数据库 1.    添加数据库路由分配文件 在项目文件夹里创建‘database_router’文件.将下面的代码复制到该文件里. from django.conf import s ...

  8. jenkins权限配置

    1. 授权匿名账户权限 2 注册新用户,并且把匿名权限删除,添加用户权限 Overall(全局) Credentials(凭证) Slave(节点) Job(任务) View(视图) Administ ...

  9. virtualbox+vagrant学习-4-Vagrantfile-2-Configuration Version

    Configuration Version 配置版本是vagrant 1.1+能够与vagrant 1.0保持向后兼容的机制.同时引入了引人注目的新特性和配置选项. 如果你运行了vagrant ini ...

  10. [图解tensorflow源码] [原创] Tensorflow 图解分析 (Session, Graph, Kernels, Devices)

    TF Prepare [图解tensorflow源码] 入门准备工作 [图解tensorflow源码] TF系统概述篇 Session篇 [图解tensorflow源码] Session::Run() ...