HarmonyOS 测试用例管理
功能概述
- 存储测试用例: JSON 格式保存测试步骤和预期结果
- 执行测试用例: 自动化执行 UI 操作并验证结果
- 屏幕适配: 通过组件文本/ID 定位,而非固定坐标
- 易于扩展: 添加新测试用例只需创建 JSON 文件
快速开始
列出所有测试用例
python3 $SKILL_DIR/scripts/run_test.py --list
执行测试用例
python3 $SKILL_DIR/scripts/run_test.py photos_favorite
# 多设备场景建议显式指定
python3 $SKILL_DIR/scripts/run_test.py photos_favorite --device 127.0.0.1:5555
# 失败即停,便于快速定位
python3 $SKILL_DIR/scripts/run_test.py photos_favorite --fail-fast
保存当前操作为测试用例
当用户教你一步步执行完一个测试流程后,可以说"把这个测试用例保存下来",我会:
- 将操作步骤转换为 JSON 格式
- 使用组件文本/ID 定位(非固定坐标)
- 保存到
testcases/ 目录
测试用例格式
{
"id": "test_id",
"name": "测试名称",
"description": "测试描述",
"app": "com.example.app",
"tags": ["标签1", "标签2"],
"steps": [
{
"step": 1,
"action": "click",
"description": "点击按钮",
"params": {
"locator": {
"type": "text",
"value": "确定"
}
},
"expected": "应该跳转到下一页"
}
],
"teardown_steps": []
}
支持的操作类型
| action |
说明 |
params |
launch_app |
启动应用 |
locator - 应用图标定位 |
click |
点击 |
locator - 组件定位 |
wait |
等待 |
duration - 秒数 |
key_event |
按键 |
value - Back/Home 等 |
swipe |
滑动 |
coords 或 start_locator/end_locator |
verify |
验证 |
locator - 要验证的组件 |
capture_count |
记录组件数量基线 |
key + locator |
verify_count_delta |
验证数量变化 |
key + locator + allowed_deltas |
定位器类型
| type |
说明 |
示例 |
text |
按文本查找 |
{"type": "text", "value": "设置"} |
id |
按ID查找 |
{"type": "id", "value": "ToolBarButtonFavor"} |
已有测试用例
| 用例 |
描述 |
photos_favorite |
图库收藏/取消收藏功能测试 |
添加新测试用例
- 在
testcases/ 目录创建 JSON 文件
- 按格式编写测试步骤
- 使用
run_test.py 执行验证
工作流程
当用户完成一个测试流程后,我会:
- 记录步骤: 将每一步操作转换为标准格式
- 提取定位器: 使用 harmonyos-ui-automator 技能获取组件的 text 或 id
- 保存用例: 写入 JSON 文件到
testcases/ 目录
- 验证格式: 确保用例可以正常执行
注意事项
- 多设备同时在线时,建议传
--device,避免操作到错误设备
- 定位器优先使用
text,其次是 id
coords 仅作为兜底(动态页面或无稳定 locator 时),优先用 locator
- 每个步骤应包含清晰的
description 和 expected
teardown_steps 用于测试后恢复环境
快速自检
bash $SKILL_DIR/scripts/smoke_test.sh