# 上手指南

# 运行官方示例

将官方示例(sample-nodejs)克隆到本地,然后按照如下命令即可下载已提供好的示例 App,并运行自动化测试。

# 安装工具包和驱动
$ npm i macaca-cli macaca-ios -g
$ git clone https://github.com/macaca-sample/sample-nodejs.git --depth=1
$ cd sample-nodejs
# 安装项目依赖
$ npm i
$ npm run doctor
$ npm run test:ios

# 执行测试用例

# run test in current cwd
$ macaca run --verbose

# 指定测试文件目录及测试框架,此功能只支持 Node.js 版
# 目前支持 mocha, jasmine, tman 和 ava。
$ macaca run -d ./test -f mocha

# 将结果导出为文件
$ macaca run -o

# 静默执行(只支持桌面浏览器)
$ macaca run --no-window

# 使用自定义的报告器
$ CUSTOM_DIR=path/to/screenshot macaca run -d ./test --reporter macaca-simple-reportor

macaca-simple-reportor 是自定义报告器的一个示例,可以作为参考。

如果想要测试 Electron App 桌面应用,可以运行这个示例,将 (macaca-electron-app-sample)克隆到本地,然后按照如下命令即可下载已提供好的Eelectron.App,并运行自动化测试。

# 安装项目依赖
$ npm i
$ npm run build
$ npm run dist

# 执行 Electron App 测试用例

# Mac
$ npm run mac-start
$ npm run test

# Windows
$ npm run win-start
$ npm run win-server
$ npm run test

# 配置示例

describe('test electron.app', function() {
  ...

  before(function () {
    return driver
      .init({
        platformName: 'desktop',    //设置支持 Desktop 参数
        browserName: 'chrome',      //设置支持 Eletron 参数
        chromeOptions: {            //设置chromeDriver chromeOptions object 参数
          binary: '/Applications/macaca-electron-builder.app/Contents/MacOS/macaca-electron-builder'  // 填写自己的执行文件路径或者安装之后的文件路径
        }
      })
      .sleep(2 * 1000);
  });

  it('click link', function () {
    return driver
      .waitForElementById('macacaId', 5000, 100)
      .click();
  })
  ...
})

# 只启动服务器

# 普通用法,添加了 --verbose 可以看到详细的信息
$ macaca server --verbose

# 设置端口号
$ macaca server -p 3456

# 检查当前 Macaca 的安装环境

$ macaca doctor

# 更多的选项

$ macaca -h

# 服务器相关选项
$ macaca server -h

# 如何执行用例的选项
$ macaca run -h

注: 相比桌面浏览器,移动 App 测试有更多环境上的要求,如果没有看到预期的效果一般都是简单的坏境问题导致的,可以看下面提供的示例视频进行了解,更多关于环境的配置可以参考环境配置

# 多语言栈

如上示例基于 Node.js 开发平台,Macaca 也提供多语言栈支持,请阅读多语言

# 示例集合

更多的示例请访问macaca-sample

# 视频演示

# iOS 应用测试(含 WebView)

# iOS 手机端浏览器

# Android 应用测试(含 WebView)

# Android 手机端浏览器

# 桌面端 (Electron)

上次更新: 6/5/2021, 4:50:49 PM