首先想要会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. 4-urllib库添加代理,添加请求头格式 模板

    urllib 库设置代理的方法 案例如下:

  2. 如何处理高并发情况下的DB插入

    1.  我们需要接收一个外部的订单,而这个订单号是不允许重复的 2.  数据库对外部订单号没有做唯一性约束 3.  外部经常插入相同的订单,对于已经存在的订单则拒绝处理 对于这个需求,很简单我们会用下 ...

  3. JavaScript创建对象的6种方式

    JavaScript创建对象简单的说,无非就是使用内置对象(Object)或各种自定义对象,当然还可以用JSON,但写法有很多种,也能混合使用. 1.对象字面量的方式 person = {name : ...

  4. Java8新特性 -- Lambda基础语法

    Lambda 表达式的基础语法: Java8引入了一个新的操作符 “->”  该操作符称为箭头操作符或Lambda操作符, 该操作符将Lambda表达式拆分为两部分: 左侧: Lambda表达式 ...

  5. django CBV模式下如何去掉csrf验证

    方式一:from django.views.decorators.csrf import csrf_exemptfrom django.utils.decorators import method_d ...

  6. 利用Zookeeper实现分布式锁及服务注册中心

    对于Zookeeper的定义以及原理,网上已经有很多的优秀文章对其进行了详细的介绍,所以本文不再进行这方面的阐述. 本文主要介绍一些基本的准备工作以及zookeeper.net的使用. 本文源代码gi ...

  7. C++编写简单的Service和Client

    在上一步的基础上 编写Service节点 这里,我们将创建一个简单的service节点("add_two_ints_server"),该节点将接收到两个整形数字,并返回它们的和. ...

  8. 《You dont know JS》原生函数

    原生函数 原生函数,即JavaScript的内建函数(built-in function).常用的原生函数有String().Number().Boolean().Array().Object().F ...

  9. vmstat命令参数详解

    转自:https://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html vmstat命令是最常见的Linux/Unix监控工具,可以展 ...

  10. 简单部署iRedMail-0.9.8 - 邮件服务器架构和错误代码

    1.去官网下载最新稳定版软件 https://www.iredmail.com/index.html 2.https://docs.iredmail.org/install.iredmail.on.r ...