获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

运行 Robo 测试

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

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

除了运行常规 Robo 测试外,您还可以使用 Robo 脚本自定义测试,这是 Robo 测试的一个功能。要了解更多信息,请参阅运行 Robo 脚本

Robo 测试抓取统计信息

为了帮助您解释您的 Robo 测试结果,Robo 测试会在每次测试爬网期间记录统计信息。测试实验室在测试结果页面的 Robo 测试选项卡顶部显示统计信息:

  • Actions:爬取期间执行的操作总数,包括 Robo 脚本操作、猴子操作和 Robo 指令。

  • 活动:爬网期间涵盖的不同活动的数量。

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

测试实验室还使用统计数据以爬网图的形式创建 Robo 测试的可视化表示。该图以屏幕为节点,以动作为边。通过跟踪屏幕之间的边缘,您可以了解 Robo 测试如何在整个爬网过程中遍历您的应用程序。

机器人测试超时

根据应用程序 UI 的复杂性,Robo 测试可能需要五分钟或更长时间才能完成一组完整的 UI 交互。对于大多数应用程序,我们建议将测试超时设置为至少 120 秒(2 分钟),对于中等复杂的应用程序,建议设置为 300 秒(5 分钟)。对于从 Android Studio 和 Firebase 控制台运行的测试,超时的默认值为 300 秒(5 分钟),对于从gcloud命令行运行的测试,超时的默认值为 900 秒(15 分钟)。

应用启动超时错误

如果您的应用需要很长时间才能启动,Robo 测试可能会引发错误,并且无法抓取您的应用。这仅在启动时间极长的情况下才会发生,并且只能通过修改您的应用程序以使其启动更快来解决。

使用 Robo 脚本进行更多控制

有时您需要对测试进行更多控制。例如,您可能想要测试常见的用户旅程或提供特定的 UI 输入,例如用户名和密码。 Robo 脚本可以提供帮助。要了解有关 Robo 脚本的更多信息,请参阅运行 Robo 脚本Robo 脚本参考指南

Robo 测试和非 Android UI 小部件

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

如果您的应用程序中的屏幕不使用 Android UI 小部件,Robo 测试会使用 Monkey Actions 来测试该屏幕。与更有条理的 Robo 测试动作不同,Monkey Actions 只是模拟设备屏幕上半随机位置上的点击事件。

为了更好地测试不使用 Android UI 小部件的屏幕,您可以通过Firebase 测试实验室游戏循环测试将 Monkey Action 的任意点击替换为一组脚本点击和交互。

与 Google Play 集成

当您使用 alpha 或 beta 通道上传和发布应用的 APK 文件时,您可以在 Google Play Console 中使用 Robo 测试。 Robo 测试在一组来自不同地理位置的流行物理设备上运行,提供跨各种外形尺寸和硬件配置的测试覆盖率。要了解更多信息,请参阅使用发布前报告来识别问题

测试帐户登录和预定义的文本输入

Robo 测试支持测试帐户登录,还允许您在应用程序的字段中输入预定义的文本。对于自定义登录和其他预定义的文本输入,Robo 测试可以将文本输入到您应用中的EditText字段中。对于每个字符串,您需要使用 Android 资源名称来标识EditText字段。要了解更多信息,请参阅访问资源

登入

Robo 测试有两种互斥方式来支持登录:

  • 自定义登录:如果您提供测试帐户凭据,您需要告诉 Robo test 在哪里输入它们,并提供这些凭据。

  • 自动登录:如果您的应用具有使用 Google 帐户进行身份验证的登录屏幕,则 Robo 测试将使用 Google 测试帐户,除非您提供用于自定义登录的测试帐户凭据。

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

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

  2. Test account credentials (Optional)下,输入用户名和密码资源名称以及测试帐户的用户名和密码。

预定义文本输入

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

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

  2. Additional fields (Optional)下,输入一个或多个资源名称,以及要在相应文本字段中输入的字符串。

预定义的文本输入错误

Robo 测试搜索具有与提供的正则表达式匹配的 Android 资源名称的EditText字段。如果 Robo 找不到匹配的字段,它不会输入您的文本,但会像往常一样继续爬行。

您最多可以提供三个您的应用支持的深层链接进行测试。深层链接作为 Android ACTION_VIEW发送到您的应用。因此,每个链接都必须匹配您应用中的意图过滤器。

如果提供了一个或多个深层链接,应用程序首先正常启动(使用ACTION_MAIN意图)并爬到指定的超时。在主爬网之后,每个深度链接都会额外爬网 30 秒。

如果 Robo 测试找不到与您的深层链接匹配的活动,测试实验室会忽略该链接。深层链接问题通常是由于提供的深层链接与其在您的应用程序中的定义之间存在差异造成的。检查提供的 URL 和您的应用程序是否存在拼写错误或其他不一致的地方。

应用许可支持

测试实验室支持使用 Google Play 提供的应用许可服务的应用。要在使用 Test Lab 测试您的应用程序时成功检查许可,您必须将您的应用程序发布到 Play 商店的生产渠道。要使用测试实验室在 Alpha 或 Beta 通道中测试您的应用,请在将您的应用上传到测试实验室之前删除许可检查。

已知的问题

Robo 测试目前具有以下已知限制:

  • UI 框架支持:Robo 测试仅与使用 Android UI 框架中的 UI 元素(包括ViewViewGroup对象,但不包括WebView对象)的应用兼容。如果您使用 Robo 测试来测试使用其他 UI 框架的应用程序,包括使用 Unity 游戏引擎的应用程序,则测试可能会退出而不会超出第一个屏幕。
  • 登录验证码:Robo 测试无法绕过需要额外用户操作(除了输入凭据才能登录)的登录屏幕,例如完成验证码。

下一步