浅谈Macaca自动化测试

一、Macaca介绍

Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。

 



Macaca 具有以下几个特征:

①多端支持:Macaca 支持主流的移动技术平台 iOS,Android,以及两大平台的混合运行时 Webview,也支持以往的桌面端浏览器。

②标准化:Macaca 提供了标准化的驱动层,消除了各技术平台测试技术栈的差异。


③多语言栈支持:Macaca 提供 Node.js, Java, Python 三大主流的语言栈,方便工程师和所在团队选择合适的开发语言。由于 Macaca 的工具链基于 Node.js,多种因素导致 Node.js 端提供的支持和周边工具会相对多。

④集成和融合:Macaca 提供了多种持续集成方案和功能模块,方便集成到研发和测试的各个环节。

 

二、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 工程目录,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

 



 

四、Macaca其他应用


录制回放器:支持 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

 

猜你喜欢

转载自blog.csdn.net/itest_2016/article/details/80048610