
关于
使用 ADB 在 Android 模拟器上进行自动化端到端 UI 测试和验证。
name: android_ui_verification description: 使用 ADB 在 Android 模拟器上进行自动化端到端 UI 测试和验证。 risk: safe source: community date_added: "2026-02-28"
Android UI 验证技能
本技能提供了一种系统化方法,使用 ADB 命令在 Android 模拟器上测试 React Native 应用。它允许自主交互、状态验证和视觉回归检查。
何时使用
- 验证 React Native 或原生 Android 应用中的 UI 变更。
- 自主调试布局问题或交互 bug。
- 当手动测试太慢时确保功能正常。
- 为 PR 文档捕获自动化截图。
前提条件
- Android 模拟器正在运行。
adb已安装并在 PATH 中。- 应用处于调试模式以访问 logcat。
工作流
1. 设备校准
在交互之前,始终验证屏幕分辨率以确保点击坐标准确。
adb shell wm size
注意:布局通常是缩放的。使用返回的物理尺寸作为坐标计算的基准。
2. UI 检查(状态发现)
使用 uiautomator dump 查找 UI 元素(按钮、输入框)的精确边界。
adb shell uiautomator dump /sdcard/view.xml && adb pull /sdcard/view.xml ./artifacts/view.xml
在 view.xml 中搜索 text、content-desc 或 resource-id。bounds 属性 [x1,y1][x2,y2] 定义了可点击区域。
3. 交互命令
- 点击:
adb shell input tap <x> <y>(使用元素边界的中心)。 - 滑动:
adb shell input swipe <x1> <y1> <x2> <y2> <duration_ms>(用于滚动)。 - 文本输入:
adb shell input text "<message>"(注意:对特殊字符支持有限)。 - 按键事件:
adb shell input keyevent <code_id>(例如 66 表示回车)。
4. 验证与报告
视觉验证
交互后捕获截图以确认 UI 变更。
adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png ./artifacts/test_result.png
分析验证
实时监控 JS 控制台日志以检测错误或记录成功。
adb logcat -d | grep "ReactNativeJS" | tail -n 20
清理
始终将生成的文件存储在 artifacts/ 文件夹中以满足项目组织规则。
最佳实践
- 等待动画:在交互和验证之间始终添加短暂等待(例如 1-2 秒)。
- 居中点击:计算
[x1,y1][x2,y2]的算术平均值以获得最可靠的点击目标。 - 日志标记:在代码中使用明确的日志消息(例如
Action Successful)使grep验证更容易。 - 快速失败:如果
uiautomator dump失败或未找到预期文本,停下来排查而非盲目点击。
限制
- 仅在任务明确匹配上述范围时使用本技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少所需的输入、权限、安全边界或成功标准,请停下来寻求澄清。
兼容工具
Claude CodeCursor
标签
移动端