关于 android-testing-ui
面向 Android 开发者的 UI 测试技能,涵盖 Compose、Espresso 风格检查、截图断言和无障碍验证。帮助选择针对性测试并让失败信息便于处理。
主要功能
- 01Compose UI 行为断言
- 02Espresso 风格检查
- 03Roborazzi 截图验证
- 04无障碍语义验证
- 05测试失败处理指引
适用场景
- 01验证 Compose 屏幕与交互
- 02捕捉稳定界面的视觉回归
- 03检查无障碍描述是否可见
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ krutikjain/ android-agent-skills --skill android-testing-ui安装后在 Claude Code 中输入/android-testing-ui确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/official-links.mdpatterns.mdscenarios.mdscripts/run_examples.sh详细介绍
Android UI 测试
适用场景
- 在请求涉及以下内容时使用此技能:Android UI 测试、Compose UI 测试屏幕、Espresso 风格的 Android 验证。
- 主要目标:使用 Compose UI 测试、Espresso 风格检查、截图断言和无障碍验证,确认 Android UI 的行为。
- 当缺少的是断言、插桩、截图捕获或无障碍验证,而非产品状态设计时,使用此技能。
- 如果范围扩大,请交接给以下技能:
android-compose-accessibilityandroid-ui-states-validation
工作流
- 确定风险范围:行为、视觉回归、无障碍语义或跨设备交互。
- 选择能捕获可能回归问题的最精简验证策略:使用插桩验证行为,使用 Roborazzi 验证视觉,或在高风险流程中同时使用两者。
- 为工作流添加插桩,让失败信息具有可操作性,而不只是显示红色。
- 在示例应用和打包产物上运行相关检查。
- 通过明确的后续工作和负责技能记录任何剩余风险;如果状态矩阵本身不完整,则交接给
android-ui-states-validation。
防护措施
- 优先采用可在 CI 中重现的检查,而非一次性的本地应急处理。
- 通过使用确定性内容、固定主题和尽量减少随时间变化的 UI,保持截图测试稳定。
- 失败时提供精确的修复路径,而非含糊的质量门禁。
- 不要在示例和测试夹具中放入密钥、签名材料和生产凭据。
- 将性能和安全工作视为需要证据支持的工程任务,而非道听途说。
反模式
- 只增加测试,却没有提高有效信号。
- 将截图测试变成不稳定界面的像素噪声快照。
- 发布无人能够复现的基准测试或安全扫描。
- 将发布凭据硬编码到构建逻辑中。
- 使用无法结合用户影响进行解读的合成指标。
修复示例
选择行为覆盖还是截图覆盖
composeTestRule.onNodeWithText("Review blocked state").performClick()
composeTestRule.onNodeWithText("Reminder readiness").assertIsDisplayed()
@Test
fun orbitTasksBoard_matchesGolden() {
composeTestRule.setContent { OrbitTasksApp() }
composeTestRule.onRoot().captureRoboImage()
}
在 UI 行为验证中添加无障碍断言
composeTestRule
.onNodeWithContentDescription("Team avatar for release readiness")
.assertIsDisplayed()
示例
正常路径
- 场景:对任务看板和操作流程运行 Compose UI 断言,然后使用 Roborazzi 验证同一稳定界面。
- 命令:
cd examples/orbittasks-compose && ./gradlew :app:connectedDebugAndroidTest verifyRoborazziDebug
边缘情况
- 场景:当稳定的 Compose 界面发生有意变更时,录制或更新截图基线。
- 命令:
cd examples/orbittasks-compose && ./gradlew recordRoborazziDebug
故障恢复
- 场景:区分 UI 测试请求、UI 状态审查请求和仅涉及无障碍的提示词。
- 命令:
python3 scripts/eval_triggers.py --skill android-testing-ui
完成清单
- 实现路径明确、精简,并对应正确的 Android 界面。
- 已执行或更新相关示例命令和基准测试提示词。
- 当请求跨越相邻技能的边界时,已记录交接事项。
- 官方参考资料涵盖所选模式以及主要迁移或故障排查路径。
官方参考资料
评论
支持 Markdown