运行 Robo 测试 (Android)

Robo 测试是一种与 Firebase Test Lab 集成的测试工具。 Robo 测试会先分析应用界面 (UI) 的结构,然后自动模拟用户活动,有条不紊地进行探索。当您使用 Robo 测试在特定设备配置上以相同的设置来测试应用时,Robo 测试会始终以同一顺序模拟相同的用户活动。这种可重复的测试方法使您可以使用 Robo 测试来验证问题修复情况并测试回归情况。

Robo 测试可捕获日志文件并保存一系列带有注释的屏幕截图,然后使用这些屏幕截图创建视频,向您展示它模拟的用户操作。这些日志、屏幕截图和视频有助于您确定应用崩溃的根本原因。这些 Robo 测试功能还可以帮助您发现应用界面的问题。

除了运行常规 Robo 测试之外,您还可以使用 Robo 脚本(Robo 测试的一项功能)来对测试进行自定义。如需了解详情,请参阅运行 Robo 脚本

如果您想试用 iOS+ 版 Robo Beta 版,请参阅运行 Robo 测试

Robo 测试的抓取统计信息

为了帮助您解读 Robo 测试结果,Robo 测试在每次测试抓取期间都会记录统计信息。Test Lab 会在测试结果页面中的“Robo 测试”标签页顶部显示以下统计信息:

  • 操作数:抓取期间执行的操作(包括 Robo 脚本操作、Monkey 操作和 Robo 指令)总数。

  • Activity 数:抓取到的不同 activity 的数量。

  • 屏幕数:抓取期间访问的不同屏幕的数量。

Test Lab 还会根据统计信息,以抓取图表的形式直观展示 Robo 测试情况。该图表将屏幕作为其节点,将操作作为边线。通过跟踪屏幕之间的边线,您可以了解 Robo 测试在整个抓取过程中如何遍历您的应用。

Robo 测试超时

Robo 测试可能需要 5 分钟或更长的时间,才能完成一整套的界面互动,具体视应用界面的复杂程度而定。我们建议对大多数应用设置至少 120 秒(2 分钟)的测试超时,对比较复杂的应用设置 300 秒(5 分钟)的测试超时。通过 Android Studio 和 Firebase 控制台运行的测试的默认超时值为 300 秒(5 分钟),通过 gcloud 命令行运行的测试的默认超时值为 900 秒(15 分钟)。

应用启动超时错误

如果您的应用需要很长时间才能启动,Robo 测试可能会抛出错误,并且无法抓取您的应用。这仅在启动时间极长的情况下才会发生,并且只能通过修改应用以加快启动速度得到解决。

通过 Robo 脚本获得更多控制权

有时候,您需要更好地控制测试。例如,您可能需要测试常见的用户操作历程或提供特定的界面输入(例如用户名和密码)。Robo 脚本可以在这方面提供帮助。如需详细了解 Robo 脚本,请参阅运行 Robo 脚本Robo 脚本参考指南

Robo 测试和非 Android 界面 widget

Robo 测试使用 Android API 直接在 Android 界面 widget 上执行操作。这有助于测试自动探索您的界面,但也意味着它们需要能够提取屏幕的 Android 界面层次结构,以便对其进行测试。

如果应用中某个屏幕不使用 Android 界面 widget,则 Robo 测试会依靠 Monkey 操作来测试该屏幕。与更有条理的 Robo 测试操作不同,Monkey 操作只是在设备屏幕上模拟进行位置半随机的点按事件。

为了更好地测试不使用 Android 界面 widget 的屏幕,您可以通过 Firebase Test Lab 游戏循环测试将一项 Monkey 操作的随意点按替换为一组通过脚本来设定的点按和交互。

与 Google Play 进行集成

如果您使用 Alpha 或 Beta 版渠道上传和发布应用的 APK 文件,则可以在 Google Play 管理中心中使用 Robo 测试。Robo 测试可以在一组位于不同地理位置的常用真机设备上运行,测试范围可覆盖各种设备类型和硬件配置。 如需了解详情,请参阅利用发布前测试报告发现问题

测试账号登录和预定义文本输入

Robo 测试支持测试账号登录,还允许在应用的字段中输入预定义的文本。为了实现自定义登录和其他预定义的文本输入,Robo 测试可以在应用的 EditText 字段中输入文本。对于每个字符串,您需要使用 Android 资源名称来标识 EditText 字段。如需了解详情,请参阅访问资源

登录

Robo 测试支持两种相互排斥的登录方法:

  • 自定义登录:如果您提供测试账号凭据,则需要指示 Robo 测试在哪里输入凭据,并提供这些凭据。

  • 自动登录:如果您的应用有使用 Google 账号进行身份验证的登录屏幕,则 Robo 测试会使用 Google 测试账号,除非您提供了测试账号凭据以实现自定义登录。

要为自定义登录提供测试账号凭据,请执行以下操作:

  1. 选择维度页面上,选择其他选项

  2. 测试账号凭据(可选)下,输入用户名和密码资源名称,以及测试账号的用户名和密码。

预定义文本输入

您可以为应用使用的其他文本字段提供自定义输入文本。要为其他字段提供文本输入,请执行以下操作:

  1. 选择维度页面上,选择其他选项

  2. 其他字段(可选)下,输入一个或多个资源名称,然后在相应文本字段中输入字符串。

预定义文本输入 {:#predefined-text} 错误

Robo 测试会使用所提供的正则表达式,搜索 Android 资源名称与之匹配的 EditText 字段。如果 Robo 找不到匹配的字段,则不会输入您的文本,而是像往常一样继续抓取。

您最多可以提供三个您的应用支持的深层链接,以执行测试。 深层链接会作为 Android ACTION_VIEW Intent 发布到您的应用。因此,每个链接必须与应用中的 Intent 过滤器相匹配。

如果您提供了一个或多个深层链接,则应用首先会正常启动(使用 ACTION_MAIN Intent)并执行抓取,直至达到指定的超时。主要抓取操作完成后,系统会分别对每个深层链接再执行 30 秒的抓取。

如果 Robo 测试找不到与您的深层链接匹配的 activity,则 Test Lab 会忽略该链接。深层链接问题通常是由于所提供的深层链接与其在应用中的定义不符而导致的。请检查提供的网址和您的应用是否存在拼写错误或其他不一致问题。

应用许可支持

Test Lab 支持使用 Google Play 应用许可服务的应用。在通过 Test Lab 测试您的应用时,为了成功地检查许可,您必须将该应用发布到 Play 商店中的正式版渠道。如需使用 Test Lab 测试您在 Alpha 或 Beta 版渠道中的应用,请在将该应用上传到 Test Lab 之前取消许可检查。

后续步骤