[视频] 使用 iOS 真机演示 Macaca 测试
发布于 16 小时前 作者 tsj1107 71 次浏览 最后一次编辑是 13 小时前 来自 分享

点击此链接看视频

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 就可以看了

回到顶部