Macaca环境搭建全教程
首先想要会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的控件。
常用链接
TestHome社区-Macaca一些技术贴
Macaca环境搭建全教程的更多相关文章
- Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)
win7(win10也适用)系统安装GPU/CPU版tensorflow Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程) 目录 2.配置 ...
- PHPCMS V9轻松完成WAP手机网站搭建全教程
---恢复内容开始--- 应用PHPCMS V9轻松完成WAP手机网站搭建全教程 用PHPCMS最新发布的V9搭建了PHPCMS研究中心网站(http://www.17huiyi.net)完成后,有用 ...
- [新手教程]windows 2003 php环境搭建详细教程(转)
对于windows服务器的php环境配置一直是是新人朋友的难题,也难倒了很多高手.这里分享一个新手教程,给那些建站新人使用.本教程来自朋友吴文辉的博客,欢迎大家有时间可以访问他的博客:吴文辉博客htt ...
- macaca 环境搭建篇,(web 和安卓)
appium研究一段时间,感觉appium太不稳定了, 后来听说了阿里开源了macaca,那么我就想尝尝鲜,啥都不说,我感觉还是赶紧上手搭建环境吧. macaca介绍: Macaca是一套完整的自动化 ...
- LNMP环境搭建详细教程
之前有一篇博客写的是LAMP的环境搭建,今天来详细介绍一下另外一个模式——LNMP=Linux+Nginx+MySQL+PHP. 一.在Linux系统下nginx的安装过程,先到http://ngin ...
- 区块链学习——HyperLedger-Fabric v0.6环境搭建详细教程
v0.6 的架构相对简单,适合作为实验或学习来使用. 一.环境准备 一台云服务器(笔者使用的是阿里云的1核-2GB内存) Go语言环境 Docker安装 docker-compose安装 二.环境搭建 ...
- 区块链学习——HyperLedger-Fabric v1.0环境搭建详细教程
相对与v0.6版本来说,1.0版本改变较大,此处不多说,只是将小白自己搭建1.0环境的过程分享给大家.希望对大家能有所帮助! 这一篇可能对前面的环境搭建会写的有些粗略,如有疑问,可阅读上一篇V0.6版 ...
- Macaca环境搭建(二)----uirecorder PC录制
上一节我们安装好了macaca环境,这节我们来进行PC录制: 一.安装UI Recorder 命令窗口输入:npm install uirecorder mocha -g 二.初始化配置 1.创建文件 ...
- Myeclipse10 + JBPM4.4 环境搭建图文教程
一.软件环境 IDE:Myeclipse10.0 (jbpm4.0以上版本好像只能与Myeclipse7.5以上版本集成) JBPM:4.4 与Myeclipse集成 1.解压jbpm-4.4.zip ...
随机推荐
- 使用yii AR 完成单个表的CURD操作
什么是AR(ActiveRecord) Active Record (活动记录,以下简称AR)提供了一个面向对象的接口, 用以访问数据库中的数据.一个 AR 类关联一张数据表, 每个 AR 对象对应表 ...
- 《关于oracle数据库的勒索病毒的预警》
近日,接部分机构反馈和安全厂商提醒,针对oracle数据库的勒索病毒攻击数量增加.该病毒存在较长潜伏期,会根据数据库实例创建时间距今是否满足1200天决定是否发起攻击.攻击通过执行恶意SQL脚本,加密 ...
- Virtual PC局域网共享速度慢的解决半法。转
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DisableTaskOffload 新建字符串,名:DisableTaskOffloa ...
- ES6中map和set用法
ES6中map和set用法 --转载自廖雪峰的官方网站 一.map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Arra ...
- 谈谈 C++ 中的右值引用
转自:https://liam0205.me/2016/12/11/rvalue-reference-in-Cpp/ 最近在改 XGBoost 的代码.XGBoost 在代码中使用了很多来自 C++1 ...
- 利用Intellij IDEA开发Spark程序
网上例子大多是基于scala的,并且配置基于sbt.scala的eclipse环境超级麻烦,所以下载IDEA. 准备:jdk,IDEA安装(可以不用事先安装sbt和Scala,这在IDEA里都可以pl ...
- HBase学习之路 (十一)HBase的协过滤器
协处理器—Coprocessor 1. 起源 Hbase 作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执 行求和.计数.排序等操作.比如,在旧版本的(<0.92)Hba ...
- mysql索引和外键
innodb外键: 1.CASCADE:从父表删除或更新会自动删除或更新子表中匹配的行 2.SET NULL:从父表删除或更新行,会设置子表中的外键列为NULL,但必须保证子表列没有指定NOT NUL ...
- 实现点击到底部、顶部、指定div功能
顶部: $(".back_top").click(function () { scrollTo(0, 0); }); function goTop() { $('html, bod ...
- laravel5.5源码笔记(八、Eloquent ORM)
上一篇写到Eloquent ORM的基类Builder类,这次就来看一下这些方便的ORM方法是如何转换成sql语句运行的. 首先还是进入\vendor\laravel\framework\src\Il ...