Macaca简介

2019-05-10  本文已影响0人  李先生的咸柠七

官网:https://macacajs.com/zh/

github:https://github.com/macacajs

一、简单介绍:

Macaca 是由阿里巴巴公司开发的一套面向用户端软件的测试解决方案。
提供了自动化驱动,环境配套,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。

1、多端支持:

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

2、多语言栈支持:
Macaca 提供 Node.js, Java, Python 三大主流的语言栈,方便工程师和所在团队选择合适的开发语言。

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

4、社区生态:
Macaca 拥有庞大的用户群,自我生长的开源形态和优质的中文社区环境,更多请见帮助支持

二、模块拆分:

1.png
                                                                                模块拆分图

Macaca

1. macaca-cli

Macaca提供的命令行工具

$macaca server 启动server

$macaca server --verbose 启动server并打印详细日志

$macaca doctor 检验当前macaca环境配置

2. app-inspector

macaca提供的元素查找工具,可以将app视图的结构以布局结构树的格式在浏览器上展示出来,用过点击某个元素,就可以方便的查询到该控件的基本信息,以方便查找。具体使用可参考官网: https://macacajs.com/inspector

3. UI Recorder

macaca提供的脚本录制工具,可以通过录制获得脚本。 https://macacajs.com/recorder

WebDriver-Server

Macaca是按照经典的Server-Client设计模式进行设计的,也就是我们常说的C/S架构。WebDriver-server部分便充当了server这部分的角色,他的职责就是等待client发送请求并做出响应。

WebDriver-Client

client端简单来讲就是我们的测试代码,我们测试代码中的一些行为,比如控件查找、点击等,这些行为以http请求的方式发送给server,server接收请求,并执行相应操作,并在response中返回执行状态、返回值等信息。

也正是基于这种经典的C/S架构,所以client端具有跨语言的特点,macaca-wd,wd.java,wd.py分别是Macaca团队针对Js Java 以及Python的封装,只要能保证client端按照指定的要求发送Http请求,任意语言都可以。

DriverList

自动化要在不同的平台上跑,需要有对应平台的驱动,这部分驱动接收到来自server的操作命令,驱动各自平台的底层完成对应的操作。

1. Android

Macaca针对安卓平台的驱动集合

2. iOS

Macaca针对iOS平台的驱动集合

3. Hybrid

Macaca针对Hybrid的驱动集合。

4. Electron

Macaca针对pc端网页应用的支持

Macaca执行流程图:

2.png
上一篇 下一篇

猜你喜欢

热点阅读