美文网首页
Macaca的介绍安装使用

Macaca的介绍安装使用

作者: 我为峰2014 | 来源:发表于2018-10-25 15:42 被阅读0次

    Macaca介绍

    Macaca的基本组成

    通过对源码各个模块的分析,可以帮助我们对Macaca的整体构成有一个基础的认识。Macaca已经开源,相关的源码在对应的github上都可以下载。

    structure

    模块拆分讲解:

    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针对安卓平台的驱动集合

    • 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的组成模块以及他们各自的作用,下面我们看一下各个模块是如何组装起来实现自动化测试流程的,宝宝同样费了很大劲画了一张图如下:

    flow

    小结

    如上简单总结了Macaca的基础原理,提供一个小窍门是大家可以对照控制台输出与文章中的流程图一一对应,这样就能大体了解整个流程的数据流向,从而就能参透Macaca的基础原理了。

    Macaca介绍

    环境配置

    安装 Node.js

    请安装 Node.js v8.0 或者更高版本,装好 Node.js 后命令行里就已经集成了 npm 工具,为了提高安装模块的速度,请使用国内的 cnpm(淘宝源)。

    Android 环境

    • 安装 JDK,要求 1.8 (不支持Java 9)

    • 配置 JAVA_HOME

    • 安装Gradle 安装包并且设置对应的环境变量

    • 安装 18-25 版本中的任一 SDKAndroid Support Repository,并配置ANDROID_HOME

    iOS 环境

    • 安装 Xcode9 或者更高版本

    • 安装 usbmuxd 以便于通过 USB 通道测试 iOS 真机,不需要测试真机则不用安装

    Macaca环境安装

    1、安装Node.js。

    2、安装Node.js完成。 首先切换切换淘宝源,因为国外资源访问很慢,而且有些资源还无法下载。

    3、通过淘宝源安装 macaca-cli

    • cnpm i macaca-cli -g

    4、安装webdriver-client

    • cnpm install webdriver-client

    5、安装macaca-electron

    • cnpm install macaca-electron -g

    macaca-electron是基于Electron开发的Macaca驱动,是Macaca驱动之一。

    6、安装macaca-chrome

    • cnpm install macaca-chrome -g

    7、安装Macaca Python Client,支持pip安装。

    • python3 -m pip install wd

    8、安装macaca-chromedriver

    • cnpm install macaca-chromedriver -g

    9、安装macaca-android(可选,当前只测试web)

    • cnpm install macaca-android -g

    10、安装macaca-ios(可选,当前只测试web)

    • cnpm i macaca-ios -g

    注意事项

    1、npm方式安装慢的问题

    2、切换源方式
    按快捷键【Win+X】 --> 选择“提示命令符(管理员)A”,打开超级管理员权限的cmd命令窗口

    输入命令“npm config set registry https://registry.npm.taobao.orgnpm”回车,即可跟换源

    输入命令“ config get registry ”回车可以查看更换是否成功

    3、安装chromedriver超时失败

    Macaca使用

    检查当前 Macaca 的安装环境

    #我本机的依赖情况
    λ macaca doctor
    
      macaca-doctor version: 2.0.15
    
    
      Node.js checklist:
    
      node env: C:\Program Files\nodejs\node.exe
      node version: v8.11.0
    
      Android checklist:
    
      JAVA version is `1.8`
      JAVA_HOME is set to `C:\Program Files (x86)\Java\jdk1.8.0_144`
      ANDROID_HOME is not set
      GRADLE_HOME is not set
    
      Installed driver list:
    
      chrome: 1.0.7
      electron: 2.0.4
    

    只启动服务器

    # 普通用法,添加了 --verbose 可以看到详细的信息
    $ macaca server --verbose
    
    # 设置端口号
    $ macaca server -p 3456
    启动Macaca服务
    
    *   macaca server (正常模式)
    *   macaca server -p 3456 (设置端口)
    *   macaca server -p 3456 & (设置端口后台运行)
    *   macaca server --verbose(输出详细日志)
    

    更多的选项

    $ macaca -h
    
    # 服务器相关选项
    $ macaca server -h
    
    # 如何执行用例的选项
    $ macaca run -h
    
    *   macaca -h
    *   macaca server -h
    *   macaca run -h
    *   macaca doctor -h
    

    测试

    • macaca run (运行当前目录用例集)
    • macaca run -d ./test (运行指定目录下用例集)

    7、部署webdriver服务

    7.1、命令窗口输入:npm run installdriver

    7.2、命令窗口输入:npm run server

    相关文章

      网友评论

          本文标题:Macaca的介绍安装使用

          本文链接:https://www.haomeiwen.com/subject/fztpaftx.html