[视频] 使用 iOS 真机演示 Macaca 测试
点击此链接看视频
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
就可以看了