Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。
Macaca 具有以下几个特征:
①多端支持:Macaca 支持主流的移动技术平台 iOS,Android,以及两大平台的混合运行时 Webview,也支持以往的桌面端浏览器。
②标准化:Macaca 提供了标准化的驱动层,消除了各技术平台测试技术栈的差异。
③多语言栈支持:Macaca 提供 Node.js, Java, Python 三大主流的语言栈,方便工程师和所在团队选择合适的开发语言。由于 Macaca 的工具链基于 Node.js,多种因素导致 Node.js 端提供的支持和周边工具会相对多。
④集成和融合:Macaca 提供了多种持续集成方案和功能模块,方便集成到研发和测试的各个环节。
第一步:安装Node.js。
什么是Node.js? 是一种Javascript的运行环境,能够使得JavaScript脱离浏览器运行,从而节省了写后台的时间。
为什么要安装Node.js?因为macaca是用node.js工具开发的,所以需要安装其开发平台。
第二步:安装最新的JDK。
什么是JDK(Java Development Kit)?JDK是Java语言开发工具包,包含了Java的运行环境,Java工具和Java基础的类库。
为什么要安装JDK?当进行的是安卓移动端的测试,而写安卓的程序时,不光调用安卓的API,同时也需要调用Java自带的一些库。所以必须要进行JDK的安装。
第三步:安装Macaca。
打开命令窗口,输入: npm i -g macaca-cli
如果看到可爱的猴子,那恭喜你安装成功啦!重新安装则会覆盖更新.
第四步:安装macaca-electron驱动(不同驱动适应不同平台的支持)。
命令窗口输入:npm install macaca-electron -g
npm容易被墙,推荐使用淘宝的镜像cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org
备注:macaca-electron是基于Electron开发的Macaca驱动,是Macaca驱动之一。
第五步:检查macaca环境。
命令窗口输入:macaca doctor ok!windows系统下Macaca环境安装成功!
①新建一个 Macaca 工程目录,macaca-client 会默认跑 macaca-test 文件夹下所有 .test.js 为后缀的文件。
②配置你的 package.json 文件:
package.json :主要是用来配置依赖的nodejs模块的;
repository:用于指示代码存放的位置;
dependencies:是配置所依赖的模块,^version 与当前版本兼容;
devDependencies:是用来配置开发环境下依赖的模块。
wd = require('macaca-wd');
// 引入官方webdriver client 包
let driver = wd.promiseChainRemote({
host: 'localhost',
port: process.env.MACACA_SERVER_PORT || 3456
})
// 定义webdriver client 要链接的服务端 host 和 port。
describe()函数是测试描述,每一个describe语句都可以看作是一个测试模块,它只是起着划分各个模块部分的作用,describe语句的第一个参数就是对该模块的描述。
it()是一个测试用例,在一个describe块的内部可以执行对个测试用例(it块)。
在it语句的回调函数中可以通过书写should.js断言库中的语句进行测试。首先为了使用should.js的断言库,在代码的开头部分必须引入should模块。should语法跟我们日常用的语法几乎一模一样, 非常易于使用。
常用函数
get(url) :在当前浏览器中跳转到指定链接
getProperty(name) :查询元素CSS属性的值
elementById(value) :通过元素ID找到该元素
elementByCss(value):通过CSS属性找到该元素
elementByCssSelector(value):通过CSS选择器找到该元素
sendKeys(keys):向当前活动窗口发送指定内容
should.containEql(otherValue):判断值是否包含指定内容
then():异步执行,就是当.then()前的方法执行完后再执行then()内部的程序
设置生成报告的路径和文件名
//报告文件路径,默认为mochawesome-report
$ export MOCHAWESOME_REPORTDIR=fileDir
//报告文件名,以自己的组件命名,xxx-report
$ export MOCHAWESOME_REPORTFILENAME=filename
执行macaca
在test目录下 执行 macaca run -d ./macaca-test/xxx.test.js --reporter mochawesom
录制回放器:支持 Android, iOS, PC 端浏览器的录制回放。
计算机视觉:Macaca 提供计算机视觉解决方案,用来处理 View 体系之外的问题。如识别测试过程中的截图、测试游戏类产品等。
浏览器测试:对桌面端浏览器做兼容性测试。
获取 Android 应用的性能:在测试流程中,加入一些性能采集,例如网络、cpu、线程情况、内存等等。
Macaca官网:https://macacajs.github.io/
Macaca nodejs版本API:https://macacajs.github.io/macaca-wd/
Macaca 样例集锦:https://github.com/macaca-sample
Macaca专区地址:https://testerhome.com/topics/node68