通过发布前测试报告发现问题

当您将 APK 或 app bundle 上传到开放式、封闭式或内部测试渠道后,即可检查应用在搭载不同 Android 系统版本的各种设备上运行时是否存在任何问题。

Play 管理中心的发布前测试报告可帮助您发现以下问题:

  • 崩溃
  • 性能问题
  • 无障碍功能问题
  • 安全漏洞

发布前测试报告的运作方式

在您上传并发布测试 APK 或 app bundle 后,测试设备将自动启动该应用并执行几分钟的抓取操作。抓取程序每隔几秒钟就会对您的应用执行基本操作,例如输入、点按和滑动等操作。

测试完成后,您可以在 Play 管理中心的发布前测试报告部分中查看测试结果。

注意

  • 测试设备是根据各种条件(包括市场上用户接受度、崩溃频率、屏幕分辨率、制造商、操作系统等)挑选出来的。所选的测试设备可能会有所不同。
  • 发布前测试报告由 Firebase Android 测试实验室的分析功能提供技术支持。

全部收起 全部展开

生成发布前测试报告

测试应用

要生成应用的发布前测试报告,请将应用发布到开放式、封闭式或内部测试渠道

系统会自动对您日后发布到测试渠道的所有应用版本测试设备兼容性、显示问题、性能问题和安全漏洞。

注意

  • 一般来说,您在上传 APK 或 app bundle 后不久就会收到测试结果。但在某些情况下,您将在上传后需要过几个小时才会收到结果。
  • 您可以同时测试多个应用的 APK 或 app bundle。
  • 目前,发布前测试报告设备无法对您的应用运行脚本测试。要运行脚本测试,请按照“通过 Firebase Android 测试实验室创建自定义测试”下的说明操作。
测试您的游戏

您可以使用演示循环来测试游戏中的一系列预定义操作。演示循环可让发布前测试报告与游戏玩法测试相关,因为标准抓取工具不支持 OpenGL。

要开始使用,请按以下步骤操作:

  1. 在游戏中创建一个演示循环。有关详情,请转到 Firebase 帮助中心
    • 注意:您无需拥有 Firebase 帐号即可在发布前测试报告中使用演示循环。
  2. 要在发布前测试报告中使用演示循环,您必须修改游戏以执行以下操作:
    • 启动演示循环
    • 运行演示循环
    • 关闭演示循环(可选)
  3. 将包含演示循环的游戏版本发布到开放式、封闭式或内部测试渠道。抓取工具会自动检测并执行游戏中的演示循环。
可选:通过 Firebase Android 测试实验室创建自定义测试

借助 Firebase 测试实验室,您可以通过付费选择设备类型和测试方法,以创建自定义测试。您的 Firebase 控制台中会显示自定义测试结果。

要运行自定义测试,请执行以下操作:

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 依次选择版本管理 > 发布前测试报告
  4. 如果您能够运行自定义测试,您将在屏幕顶部看到“运行自定义测试”。选择开始使用即可开始。

查看测试结果

要查看测试结果,请执行以下操作:

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 依次选择版本管理 > 发布前测试报告
  4. 查看崩溃次数性能无障碍功能屏幕截图以及安全标签。在每个页面上,您都会看到最近一次测试的结果。要查看以往版本的测试结果,请使用“选择”下拉菜单。
    • 注意:如果您看到“正在测试”,则表明您最近一次的测试尚未完成。如果系统无法运行您最近一次的测试,则可能会显示“测试失败”。要运行其他测试,请发布其他 APK 或 app bundle。

结果

请注意,Google 无法保证这些测试能发现所有问题。

概览
每份测试摘要都会包含测试期间所发现的错误、警告和不严重问题的数量(按问题类型划分),还会根据应用的测试结果提供建议。
以下是一些在测试过程中所发现问题的示例:
  • 错误:崩溃
  • 警告:ANR、启动和加载时间过长、登录或抓取问题、内存问题
  • 不严重的问题:缺少内容标签、色彩对比度问题、触控目标的大小太小、实现问题

按类别查看报告

您可以在应用概览标签的下半部分附近的各个卡片中,查看崩溃、性能、安全性、隐私和无障碍功能相关问题的摘要。测试报告可能还会根据测试结果提供数据分析与建议,让您了解如何改进应用。

每张卡片上都会显示相应说明,其中包含测试过程中所发现问题的数量和类型。

查看个别问题

在每张卡片上,您可以点击查看所有问题或卡片右下方的向下箭头,查看各个问题的简短说明。要了解特定问题的更多详细信息,请点击查看问题

与其他版本对比

在应用概览标签的底部附近有一个图表,其中会显示测试摘要与先前版本的测试比较结果。对于每个 APK 或 app bundle,您可以查看错误、警告和不严重问题的数量,以及已完成的测试数量和报告生成的时间戳。

了解发布前测试报告的使用提示

在应用概览标签的底部,您可以查看有关如何更有效地使用发布前测试报告的教程和提示。

崩溃

每个测试摘要都会包含以下内容:

  • 出现问题的设备数量
  • 没有出现问题的设备数量
  • 已测试的设备数量

与其他版本对比

系统会在您应用的崩溃次数标签上提供一个图表,其中会显示您的应用与先前版本的兼容性比较结果。

各个条形柱分别代表着您的 APK 或 app bundle 的一个最近的测试版本,以及成功通过测试的实例数和未能通过测试的实例数。

查看个别报告

在靠近您应用崩溃次数标签的下半部分,您可以查看搭载不同版本 Android 系统的各种设备进行测试所生成的个别报告。

每一行都会显示测试设备名称、设备的 Android 系统版本以及用于表示您的应用是否存在任何测试问题的图标。

  • 如果设备在测试期间出现问题,则相应行中会显示一个红色图标。
  • 如果设备在测试期间未出现任何问题,则相应行中会显示一个绿色对勾标记。

选择相应测试即可查看对应的详细信息,如设备名称、操作系统、测试时长、测试的屏幕截图和视频、演示循环输出以及堆栈轨迹(如果适用)。

注意:系统也会将在测试过程中发现的崩溃情况随应用的崩溃和 ANR 错误一并列出。不过,由于生成发布前测试报告时发现的崩溃问题来自测试设备,因此不会影响您的崩溃统计信息。

效果

对于每个设备型号,测试摘要都包含以下指标:

  • 平均每秒帧数:显示帧的平均速度。
    • 注意:“平均每秒帧数”数据仅适用于使用演示循环的测试。
  • 平均 CPU 使用量:您的应用在特定型号设备上所占的平均 CPU 使用量百分比。
  • 平均网络数据发送量您的应用在特定型号设备上每秒通过网络连接发送的平均字节数。
  • 平均网络数据接收量您的应用在特定型号设备上每秒通过网络连接接收的平均字节数。
  • 平均内存使用量在特定型号的设备上,您的应用在选定时间段内使用的平均内存量。

注意:对于运行部分旧版 Android 系统的测试设备,系统可能无法生成相关性能数据。

查看个别报告

选择每个设备型号,即可查看系统在整个测试过程中的不同时间段绘制的每个指标的图表和记录。

例如,您可以查看应用在测试进行时的 CPU 使用量百分比。如果发现 CPU 使用量剧增的情况,您可以查看抓取工具在那时执行的操作,以借助相关信息解决问题。

无障碍功能

每份测试摘要都会包含测试期间所发现的无障碍功能错误、警告和不严重问题的数量,并划分为以下类别:

按类别查看报告

您可以在应用无障碍功能标签下半部分附近,查看类别部分和屏幕截图集群,确定应用中发生无障碍功能问题的位置。

  • 发现错误时会显示红色图标。
  • 发现警告时会显示橙色图标。
  • 如果只发现不严重的问题,系统会显示蓝色图标。
  • 如果未发现任何问题,系统会显示绿色对勾标记。

查看个别问题

您可以点击屏幕截图集群,查看包含相应设备型号名称、操作系统、屏幕尺寸、屏幕密度和语言的屏幕截图示例,以及建议的做法。

改进应用的无障碍功能

屏幕截图

测试摘要

  • 通过一些图片展示您的应用在不同语言的测试设备上的显示情形
  • 关于测试设备的元数据(包括型号名称、Android 版本、语言、屏幕分辨率和 DPI)
  • 提供屏幕截图的设备数量
  • 无法测试您的 APK 或 app bundle 的设备数量
    • 未完成 CTL 运行的设备数量:您的 APK 或 app bundle 与这类设备兼容,但在测试期间出现问题。如果您的测试有任何未完成 CTL 运行的设备,您可能需要上传另一个 APK 或 app bundle,然后重新测试。
    • 不兼容的设备数量:您的 APK 或 app bundle 与特定测试设备不兼容。如果您重新测试,将无法收到任何不兼容设备的测试结果。

注意:如果您使用演示循环运行测试,则屏幕截图标签中不会显示任何数据。

查看屏幕截图的方式

  • 屏幕截图集群:选择屏幕截图集群标签即可查看相似的屏幕截图在不同设备上的显示情形。在这种查看方式下,发布前测试报告会根据屏幕上的元素或微件将图片分组显示。
  • 设备:选择设备标签即可查看所有与特定设备相关的屏幕截图。在这种查看方式下,您可以查看在测试期间按时间顺序截取的屏幕截图。

语言偏好设置

要查看特定语言的屏幕截图,您可以在设置标签中设置语言偏好设置

安全性

每份测试摘要都会包含在您的 APK 或 app bundle 中发现的所有安全漏洞的名称和说明。

注意:我们建议您先对已列出的所有安全漏洞采取措施,然后再将 APK 或 app bundle 发布为正式版。

管理发布前测试报告设置

发布前测试报告版本

自 2017 年 10 月起,发布前测试报告将采用新的抓取工具,以便对您的应用进行更全面的审核。为此,发布前测试报告必须在我们的测试环境中临时为您的 APK 或 app bundle 重新签名。

新测试流程的潜在限制

在重新签名流程的影响下,您可能会注意到某些应用存在测试限制。限制可能包括:

  • 无法自动登录 Google 帐号
  • 无法与使用应用签名密钥作为身份验证机制的网络服务 RPC 正常互动
  • 曝出的崩溃情况减少

注意:大多数应用不会受这些限制的影响,并且与以前的发布前测试报告相比,抓取操作范围更广,可发现更多问题。

切换到以前的测试流程

如果您发现任何问题,可以切换回以前的测试流程(不需要重新签名):

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 依次选择版本管理 > 发布前测试报告 > 设置
  4. 在“发布前测试报告版本”部分,向右移动选择停用开关,直到开关变成蓝色。
关闭所有发布前测试报告

当您将应用发布到开放式、封闭式或内部测试渠道时,系统会自动生成发布前测试报告。要停用应用的所有发布前测试报告,请按以下步骤操作:

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 依次选择版本管理 > 发布前测试报告 > 设置
  4. 将“启用发布前测试报告”旁边的开关向左移动,直到开关变成灰色为止。如果日后您想要重新启用发布前测试报告,请将该开关向右移动,直到开关变成蓝色为止。

其他测试功能

如果您的应用的登录屏幕要求提供凭据,您可以向 Play 管理中心添加与测试帐号相关联的凭据。

重要提示:您提供的凭据是用于测试目的。请注意,即使您提供了这些凭据,Google 也无法保证这些测试能发现所有问题。

系统如何使用凭据?

对于您添加的任何用于发布前报告测试的凭据,系统将保存这些凭据,供日后的所有测试使用(直到修改为止)。如果您修改应用的测试凭据,我们将在以后的所有新测试中使用更新后的凭据。如果您删除应用的测试凭据,则您将需要添加新的凭据,否则日后的测试将无法登录到您的应用。

尽管我们会全力确保测试凭据的安全,但我们建议您不要向发布前测试报告添加任何正式凭据,而是创建测试帐号用户名和密码。

注意:凭据只会自动插入到使用标准 Android 微件的 Android 应用中。凭据不能在使用 OpenGL 呈现自定义控件或将 WebView 用于基于网络的身份验证流程的应用中使用。

设置凭据

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 在左侧菜单中,依次选择版本管理 > 发布前测试报告 > 设置
  4. 输入以下内容:
    • 用户名资源名称:在您的应用中,应在其中输入指定用户名的文本字段的 Android 资源名称(例如:如果您的文本字段是 @+id/username_field,则输入 username_field)。
    • 用户名:与您的测试帐号相关联的用户名。
    • 密码资源名称:在您的应用中,应在其中输入指定密码的文本字段的 Android 资源名称
    • 密码:与您的测试帐号相关联的密码。
    • 登录按钮资源名称:输入用户名和密码后,应在应用中点按的任何按钮的 Android 资源名称。其中可能包括用于激活登录流程的按钮。您可以忽略此字段。
  5. 保存您的更改。

修改或删除凭据

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 在左侧菜单中,依次选择版本管理 > 发布前测试报告 > 设置
  4. 在随即显示的屏幕上:
    • 要修改凭据,请输入更新后的凭据。
    • 要删除凭据,请选择清除所有字段
  5. 保存您的更改。
查看特定语言的测试结果

如果您希望发布前测试报告只显示特定语言的测试结果,则可以在设置标签中设置语言偏好设置。您最多可以选择五种语言。

提示:由于发布前测试报告会在您上传测试 APK 或 app bundle 后自动生成,因此您只能在初始测试完成之后添加语言偏好设置。

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 在左侧菜单中,依次选择版本管理 > 发布前测试报告 > 设置
  4. 在“语言偏好设置”下方,选择添加语言图标
  5. 最多可选择 5 种语言。在将来的测试中,系统只会显示这些语言的测试结果。
    • 要移除某种语言,请选择“取消”图标
控制发布前测试报告探索应用的方式

如果您想要更好地控制测试,则可以设置 Robo 脚本以执行特定操作,例如测试常见的用户操作流程或应用的新部分。在标准测试中,抓取工具不一定能执行同样的操作。

在运行附加了脚本的测试时,抓取工具会先运行脚本预定义的操作,然后再像平常一样探索应用。

要开始使用,请按下列步骤操作:

  1. 要记录脚本,请按照 Firebase 帮助中心内的说明操作。Robo 脚本记录不会捕捉您在测试的应用以外执行的操作。
    • 注意:您无需拥有 Firebase 帐号即可运行 Robo 脚本。
  2. 脚本准备就绪后,请登录 Play 管理中心
  3. 选择相应的应用。
  4. 依次选择版本管理 > 发布前测试报告
  5. 选择设置标签。
  6. 在“Robo 脚本”部分,上传脚本。

全部收起 全部展开

测试提示和支持

测试设备的地理定位

测试设备位于美国。如果您的应用使用地理定位或者会根据国家/地区限制相关内容,则测试设备只能显示其所在地理位置的可用内容。

如果您的应用需要对测试设备所处位置以外的地方进行特殊地理定位,您可以发布移除了地理位置要求的 APK 或 app bundle 来进行测试。

订阅或应用内商品

测试设备在测试期间无法用来购物。如果您应用提供的订阅或应用内商品会访问应用的部分内容,则测试方案可能会受到限制。

不存在主要启动活动的应用(小部件、键盘等)

测试设备无法对不存在主要启动活动的应用(包括启动器、小部件、键盘和表盘主题)运行测试。

带有展示广告的应用

如需详细了解如何通过自动应用测试减少虚假广告收入,请访问 Google Developers 网站

针对 x86 设备编译的应用

我们的设备集仅限于 ARM 设备。x86 APK 将显示与所有测试设备均不兼容。

适用于 Wear OS by Google、Android Auto、Android TV 和较旧 Android 版本系统的应用

我们的设备集仅限于手机和平板电脑,因此无法直接在 Wear OS by Google、Android Auto 或 Android TV 上测试应用。此外,我们的设备集也不包括搭载 Android 4.1.1 (Jelly Bean) 之前版本系统的设备。

基于 OpenGL/Unity3D 框架的应用

我们的自动抓取工具无法识别使用 OpenGL/Unity3D 的应用上的界面元素。测试结果中只会包含启动应用并在几秒钟后将其关闭这一项测试。

要测试游戏中的一系列预定义操作,您可以使用演示循环

预加载的媒体或预安装的其他应用

测试平台不支持预加载带有媒体的设备或预安装的应用。

如果您想将应用搭配预加载的数据测试,您可以发布在 APK 或 app bundle 中嵌入媒体文件的测试版应用。

使用 Google Play 许可服务的应用

如果您的应用在进行开放式测试或已发布为正式版,那么发布前测试报告测试将使用一个 ID,当成您的应用已获得许可。

如果您的应用并未在进行开放式测试,并且不包含已发布为正式版的有效 APK,那么您的应用将无法通过许可检查。您仍然会收到发布前测试报告结果,但您的应用将处于未经许可的状态。要对这些应用运行测试,您可以发布封闭式测试版应用,并停用相应许可服务。

使用横向配置的应用

默认情况下,测试设备预定义为针对固定的纵向页面方向运行测试,这可能会迫使采用横向模式的应用改为采用纵向模式。

会检查设备是否已获得 root 权限的应用

对于会检查设备是否对 Android 系统具有特许控制权(root 权限)的应用,测试平台不予支持。

注册发布前测试报告电子邮件

您可以在 Play 管理中心中设置您的电子邮件偏好设置,以便在发布前测试报告可供查看时收到电子邮件通知。您可以选择接收所有测试报告的电子邮件通知,或者只接收出现问题的测试报告的电子邮件通知。

本文是否对您有帮助?
您有什么改进建议?