Macaca简介

官网: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 拥有庞大的用户群,自我生长的开源形态和优质的中文社区环境,更多请见帮助支持。
二、模块拆分:
Macaca简介
文章图片
1.png

模块拆分图

Macaca
1. macaca-cli Macaca提供的命令行工具
$macaca server 启动server
$macaca server --verbose 启动server并打印详细日志
$macaca doctor 检验当前macaca环境配置
2. app-inspector 【Macaca简介】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针对安卓平台的驱动集合
  • macaca-android 安卓驱动
  • macaca-adb 封装了安卓的adb命令,来实现一些adb的操作,比如安装、卸载、启动app、获取设备列表这些操作
  • android-unicode 经过封装后的输入法,解决中文输入的问题
  • uiautomator-client 将来自server的操作指令转换为UIAutomator可以识别的指令,驱动uiautomator完成对应的操作
  • android-performance 用于自动化测试安卓性能相关的支持
2. iOS Macaca针对iOS平台的驱动集合
  • macaca-ios iOS驱动
  • xctest-client 同安卓的uiautomator-client异曲同工,对XCUITest的封装,将来自server的操作指令转换为XCUITest可以识别的指令,驱动XCUITest完成对应的操作
  • ios-simulator 用于对ios模拟器的支持,可以通过模拟器运行用例
  • remote-debug 用于远程调试
3. Hybrid Macaca针对Hybrid的驱动集合。
  • macaca-chrome web测试驱动
  • macaca-chromedriver 驱动chrome浏览器
  • ios-webkit-debug-proxy 适用于iOS平台对webview的调试
4. Electron Macaca针对pc端网页应用的支持
  • macaca-electron
Macaca执行流程图:
Macaca简介
文章图片
2.png

    推荐阅读