mcpField
A
android-testing-ui

android-testing-ui

github.com/krutikjain测试与质量1475 次安装31 周前更新
代码仓库

关于 android-testing-ui

面向 Android 开发者的 UI 测试技能,涵盖 Compose、Espresso 风格检查、截图断言和无障碍验证。帮助选择针对性测试并让失败信息便于处理。

主要功能

  1. 01Compose UI 行为断言
  2. 02Espresso 风格检查
  3. 03Roborazzi 截图验证
  4. 04无障碍语义验证
  5. 05测试失败处理指引

适用场景

  1. 01验证 Compose 屏幕与交互
  2. 02捕捉稳定界面的视觉回归
  3. 03检查无障碍描述是否可见

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/krutikjain/android-agent-skills --skill android-testing-ui

安装后在 Claude Code 中输入/android-testing-ui确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
official-links.md
patterns.md
scenarios.md
scripts/
run_examples.sh

详细介绍

Android UI 测试

适用场景

  • 在请求涉及以下内容时使用此技能:Android UI 测试、Compose UI 测试屏幕、Espresso 风格的 Android 验证。
  • 主要目标:使用 Compose UI 测试、Espresso 风格检查、截图断言和无障碍验证,确认 Android UI 的行为。
  • 当缺少的是断言、插桩、截图捕获或无障碍验证,而非产品状态设计时,使用此技能。
  • 如果范围扩大,请交接给以下技能:
  • android-compose-accessibility
  • android-ui-states-validation

工作流

  1. 确定风险范围:行为、视觉回归、无障碍语义或跨设备交互。
  2. 选择能捕获可能回归问题的最精简验证策略:使用插桩验证行为,使用 Roborazzi 验证视觉,或在高风险流程中同时使用两者。
  3. 为工作流添加插桩,让失败信息具有可操作性,而不只是显示红色。
  4. 在示例应用和打包产物上运行相关检查。
  5. 通过明确的后续工作和负责技能记录任何剩余风险;如果状态矩阵本身不完整,则交接给 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