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

运行 Robo 测试

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

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

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

Robo 测试抓取统计信息

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

  • Actions:抓取过程中执行的动作总数,包括Robo脚本动作、猴子动作和Robo指令。

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

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

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

机器人测试超时

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

应用启动超时错误

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

使用 Robo 脚本进行更多控制

有时您需要更多地控制您的测试。例如,您可能想要测试一个常见的用户旅程或提供特定的 UI 输入,如用户名和密码。机器人脚本可以提供帮助。要了解有关 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 Test Lab Game Loop Tests将 Monkey Action 的任意点击替换为一组脚本化点击和交互。

与 Google Play 集成

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

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

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

登入

Robo test有两种互斥的方法来支持签到:

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

  • 自动登录:如果您的应用程序有一个使用 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 提供的应用许可服务的应用。要在使用测试实验室测试您的应用程序时成功检查许可,您必须将您的应用程序发布到 Play 商店的生产渠道。要使用测试实验室在 alpha 或 beta 渠道中测试您的应用程序,请在将您的应用程序上传到测试实验室之前删除许可检查。

已知的问题

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

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

下一步