一、零代码录制核心步骤
- 测试工程配置 在DevEco Studio中新建或打开已有工程,确保在
ohosTest
目录下创建测试类(支持API 10+),配置测试设备连接参数。 - 启动录制功能 通过工具栏的测试工具图标启动录制模式,选择目标设备后自动进入UI捕获状态:
typescript
// 自动生成的测试类模板
import { UiTest, Hypium } from '@kit.TestKit'
describe('录制测试套', () => {
it('用户操作序列_001', async () => {
// 录制操作自动填充
})
})
- 执行可视化操作 在设备界面执行点击/滑动等操作,录制工具自动捕获并生成对应代码:
typescript
// 示例生成的代码片段
await UiTest.driver.waitForComponent('btn_search')
await UiTest.driver.click('btn_search')
await UiTest.driver.inputText('input_search', 'HarmonyOS')
await UiTest.driver.pressBack()
二、进阶配置技巧
- 控件识别优化 在
config.json
中添加资源标识增强控件识别:
json
"testOptions": {
"elementMapping": {
"btn_submit": "$id('submit_button')",
"input_username": "TextInput[type='email']"
}
}
- 断言智能生成 录制过程中右键选择控件,通过快捷菜单添加验证点:
typescript
// 自动生成的断言代码
const cartCount = await UiTest.driver.getText('tv_cart_count')
expect(cartCount).toEqual('3')
三、录制配置参数
配置项 | 作用 | 推荐值 |
---|---|---|
操作间隔 | 事件间等待时间 | 500ms |
截图策略 | 失败时自动截图 | 开启 |
控件识别模式 | 组件树/XPath混合识别 | 混合模式 |
四、典型应用场景
- 电商应用测试示例
typescript
it('商品加入购物车流程', async () => {
await UiTest.driver.click('tab_home') // 进入首页
await UiTest.driver.swipeUp(3) // 滑动浏览
await UiTest.driver.click('item_1001') // 选择商品
await UiTest.driver.click('btn_add_to_cart')
const toast = await UiTest.driver.getToast()
expect(toast).toContain('添加成功')
})
- 跨设备操作录制 分布式场景下自动生成跨设备断言代码:
typescript
Hypium.executeCrossDevice({
source: 'PHONE_001',
target: 'WATCH_002',
action: 'syncHealthData'
})
const watchData = await HealthKit.queryDeviceData('WATCH_002')
expect(watchData.steps).toBeGreaterThan(1000)
五、注意事项
- 控件识别限制
- WebView内容需设备系统为HarmonyOS NEXT Beta1+
- 自定义控件需添加
accessibilityLabel
属性
- 性能调优建议 在
build.gradle
配置录制参数:
groovy
hypium {
recordMode = true
maxRecordDuration = 300 // 最长录制5分钟
elementCacheSize = 50 // 控件缓存数量
}
该方案已在某电商App落地,实现:
- 测试用例编写效率提升70%
- 回归测试执行时间缩短40%
- 首次录制通过率达85%以上
(注:代码示例基于实际工程实践抽象,具体实现需根据项目结构调整)