[视频] 使用 iOS 真机演示 Macaca 测试
发布于 9 年前 作者 tsj1107 5902 次浏览 最后一次编辑是 8 年前 来自 分享

点击此链接看视频

iOS 模拟器效果 链接

iOS 真机与 Android 真机步骤基本一致(Android 真机下跑 macaca 用例点此),最大不同是需要将你的 iOS APP 装到真机上并且能运行。

目录结构:

| -- macaca-test
|     | -- myapp.test.js
| -- package.json

package.json 文件:

{
  "name": "macaca-android-test-sample",
  "version": "0.1.0",
  "description": "macaca-android-test-sample",
  "devDependencies": {
    "wd": "*"
  }
}

查询 wdjs API 正式开始编写用例代码, myapp.test.js 文件如下,代码上与 Android 不同之处在于无需指定 APP 文件地址,因为你已经将 APP 装入真机了,另外在初始化 driver 的时候需要传设备的 udid 和 APP的 bundleId

const path = require('path');
const wd = require('wd'); // 引用 wd 模块

describe('macaca mobile sample', function() {
  this.timeout(5 * 60 * 1000); // mocha 设置超时时间

  var driver = wd.promiseChainRemote({ // 初始化 webdriver
    host: 'localhost',
    port: 3456
  });

  before(function() { // 与 Android 最大不同是无需指定 APP 的路径,需要传 udid 和 bundleId
    return driver.init({ 
      platformName: 'Android',
      udid: 'xxxxx',
      bundleId: 'xxxxx'
    });
  });

  after(function() { // 所有测试用例的统一后置动作
    return driver 
      .sleep(1000)
      .quit();
  });

  it('#1 should login success', function() { // 测试一下 login
    return driver
    	.waitForElementByXPath('//UIATextField[1]')
    	.sendKeys(username)
    	.waitForElementByXPath('//UIASecureTextField[1]')
    	.sendKeys(password)
    	.sleep(1000)
    	.sendKeys('\n')
    	.waitForElementByName('Login')
    	.click()
    	.sleep(5000);
  });

});

最后运行 macaca run --server 就可以看了

回到顶部