本文介绍了如何设置和生成发布前测试报告。如果您已生成发布前测试报告,希望了解如何解读结果,请转到了解您的发布前测试报告。
当您将应用发布到内部、封闭式或开放式测试轨道时,系统会自动生成发布前测试报告,这有助于在应用到达用户手中之前主动排查问题。该功能可对以下问题进行测试:
- 稳定性问题
- Android 兼容性问题
- 性能问题
- 无障碍问题
- 安全漏洞
- 隐私问题
发布前测试报告的运作方式
在您上传并发布测试 Android App Bundle 后,我们会将其安装到测试实验室中的一组 Android 设备上。我们随后会自动启动您的应用并执行几分钟的抓取操作。抓取工具会执行一些基本操作,如输入、点按和滑动。您还可以设置自定义测试或提供测试账号凭据以供抓取工具使用。
抓取完成后,我们会将测试结果整理到发布前测试报告中。我们还会从所有设备上卸载您的应用。
评估您的应用是否适合使用发布前测试报告
只要我们能够安装并“抓取”您的应用,发布前测试报告就可以正常使用。不过,某些应用可能需要您对代码稍做修改。常见示例包括需要进行国家/地区验证或安装验证的应用。如需了解详情,请转到常见问题解答。
请注意,测试设备无法对没有主要启动 activity(包括启动器、微件、键盘和表盘主题)的应用运行测试。
生成发布前测试报告
测试应用如需生成应用的发布前测试报告,请将应用发布到封闭式或开放式测试轨道。
对于您发布到测试轨道的任何应用,除非您停用发布前测试报告功能,否则您都会自动收到该报告。上传 app bundle 后,您通常会在一小时内收到测试结果,但在某些情况下,上传后需要过几个小时才会收到结果。
如果您想接收可用发布前测试报告的电子邮件通知,请按以下步骤操作:
当您将应用发布到封闭式或开放式测试轨道时,系统会自动生成发布前测试报告。如需停用应用的所有发布前测试报告,请按以下步骤操作:
- 依次打开 Play 管理中心> 发布前测试报告 > 设置。
- 向下滚动到“偏好设置”,然后取消选中“开启发布前测试报告功能”复选框,以停用应用的报告。
- 点击保存。
自定义测试
您可以对测试进行自定义,以使发布前测试报告更全面且更契合您的应用。
第 1 步:如果应用有登录界面,请提供测试账号凭据
如果您的应用具有登录界面,并且您希望抓取工具测试登录过程或需要登录才能访问的内容,您必须提供账号凭据。
注意:如果您的应用支持“使用 Google 账号登录”(抓取工具将可自动登录),或者您已经在“应用内容”页面上提供凭据,则无需再提供凭据。
以下是测试凭据方面的一些重要信息:
- 您提供的凭据仅用于测试目的。
- 尽管我们会全力确保测试凭据的安全,但我们建议您不要向发布前测试报告中添加任何正式凭据,而是创建测试账号用户名和密码。
- 凭据只能自动插入使用标准 Android widget 的 Android 应用。凭据不能在使用 OpenGL 呈现自定义控件的应用或使用 WebView 实现基于网络的身份验证流程的应用中使用。
- 如果应用支持“使用 Google 账号登录”,Google 会自动登录。
- 打开 Play 管理中心。
- 选择相应的应用。
- 在左侧菜单中,依次选择测试 > 发布前测试报告 > 设置。
- 在“测试账号凭据”部分中,选择提供凭据。
- 输入以下信息:
- 用户名:与您的测试账号相关联的用户名。
- 密码:与您的测试账号相关联的密码。
- 点击保存。除非您进行修改,否则我们在将来对您的应用进行的所有测试中都会使用这些凭据。
- 打开 Play 管理中心。
- 选择相应的应用。
- 在左侧菜单中,依次选择测试 > 发布前测试报告 > 设置。
- 做出更改:
- 修改凭据:在“测试账号凭据”部分中,在用户名和密码字段中输入更新后的凭据。
- 移除凭据:在“测试账号凭据”部分中,选择不提供凭据。
- 注意:如果您移除了应用的测试凭据,则需要添加新的凭据,我们在将来的测试中才能登录您的应用。
- 点击保存。除非您进行修改,否则我们在将来对您的应用进行的所有测试中都会使用这些凭据。
第 2 步:提供 Robo 脚本或游戏循环
如果您希望控制抓取工具在测试应用时执行的步骤,您可以提供 Robo 脚本或游戏循环。
通过提供 Robo 脚本自定义 Java 应用的测试路径您可以通过提供 Robo 脚本让抓取工具执行特定操作,例如测试常见的用户操作流程或应用的新增部分;这样就能控制抓取工具在测试应用时执行的步骤。
在运行附加了脚本的测试时,抓取工具会先运行脚本预定义的操作,然后再像平常一样探索应用。
如需将脚本上传到发布前测试报告部分,请按以下步骤操作:
- 使用 Android Studio 中的 Firebase 工具录制脚本(依次点击 Android Studio > Tools > Firebase > Test Lab > Record Robo Script)。如需了解详情,请前往 Firebase 帮助中心。
- 注意:您无需拥有 Firebase 账号即可创建 Robo 脚本。
- 脚本准备就绪后,打开 Play 管理中心。
- 选择相应的应用。
- 依次选择测试 > 发布前测试报告 > 设置。在“控制发布前测试报告测试应用的方式”部分,上传脚本。您可以拖放文件,或选择上传。
- 点击保存。
如果您要测试使用 OpenGL 的游戏或应用,为了获得切实有效的发布前测试报告,您需要提供游戏循环。游戏循环用于定义您希望抓取工具执行的操作。您可以在同一应用中测试多个游戏循环。
如需在发布前测试报告的测试中使用游戏循环,请按以下步骤操作:
- 修改您的游戏以便执行以下操作:
- 启动循环
- 运行循环
- 关闭循环(可选)。您需要在开发环境中做出这些修改。如需了解详情,请转到 Firebase 帮助中心。
- 注意:您无需拥有 Firebase 账号即可在发布前测试报告的测试中使用游戏循环。
- 将包含游戏循环的游戏版本发布到封闭式或开放式测试轨道。抓取工具会自动检测并执行游戏循环。
第 3 步:使用深层链接自定义测试起点
您可以向发布前测试报告中最多添加三个深层链接,以测试应用的额外入口点。
抓取工具会照常工作几分钟,然后关闭应用并依次访问每个深层链接,再抓取 30 秒。在这些额外抓取过程中发现的所有问题都会照常包含在报告中。
如需了解如何为应用创建和测试深层链接,请访问 Android 开发者网站。
第 4 步:查看特定语言版本的测试报告
如果您希望查看特定语言版本的测试结果,可以在发布前测试报告设置页面上指定语言偏好设置。您最多可以选择五种语言。
提示:由于发布前测试报告会在您上传测试 app bundle 时自动生成,因此您只能在初始测试完成后添加语言偏好设置。
指定语言偏好设置- 打开 Play 管理中心。
- 选择相应的应用。
- 在左侧菜单中,依次选择测试 > 发布前测试报告 > 设置。
- 在“测试应用的特定语言版本”下方,选择 + 添加语言。
- 最多选择五种语言。对于将来的测试,您只会看到这些语言版本的测试结果。
- 注意:如果您未选择任何语言,我们会自动选择应用安装量位列前茅的语言。
- 点击保存。
查看发布前测试报告
在发布前测试报告生成后,您可以查看测试摘要,其中包含测试期间所发现的错误、警告和不严重问题的数量(按问题类型分类)。您还会看到根据应用的测试结果给出的发布建议。
查看发布前测试报告摘要如需查看发布前测试报告的摘要,请按以下步骤操作:
- 打开 Play 管理中心。
- 选择相应的应用。
- 依次选择测试 > 发布前测试报告 > 概览。
- 查看各个部分:
- 稳定性
- 性能
- 无障碍功能
- 安全与信任
- 如果任何部分存在问题,选择显示摘要可将其展开。
- 选择查看详情可查看更细化的问题相关信息。
- 如需查看以前的发布前测试报告,请滚动到页面底部“报告详情”部分中的表。
注意:如果您看到“测试正在进行”,表明您最近一次的测试尚未完成。如果系统无法运行您最近一次的测试,则可能会显示“测试失败”。如需运行其他测试,请发布其他 app bundle。
如需查看发布前测试报告的详细结果,请按以下步骤操作:
- 打开 Play 管理中心。
- 选择相应的应用。
- 依次选择测试 > 发布前测试报告 > 详情。
- 查看稳定性、性能、无障碍功能、屏幕截图和安全与信任标签页。在每个页面上,您都会看到最近一次测试所得结果的完整详情,包括堆栈轨迹、屏幕截图和图表。
注意:如果您看到“测试正在进行”,表明您最近一次的测试尚未完成。如果系统无法运行您最近一次的测试,则可能会显示“测试失败”。如需运行其他测试,请发布其他 app bundle。
常见问题解答
应用测试
测试需要多长时间?上传 app bundle 后,您通常会在一小时内收到测试结果,在某些情况下,也可能上传后需要几个小时才会收到结果。如果报告在两天后仍未完成,请再次尝试上传工件。这样将触发新报告。
启动后会执行验证流程的应用
是否可以为需要进行国家/地区验证的应用生成发布前测试报告?如果您愿意对代码稍做修改,仍然可以获取发布前测试报告。
测试设备位于美国。如果您的应用使用地理定位或者会根据国家/地区限制相关内容,则测试设备只能显示其所在地理位置的可用内容。
如果您需要根据测试设备所处位置以外的地理定位进行应用测试,您可以为了测试目的而发布移除了地理位置要求的 app bundle。您可以通过以下两种方法检测发布前测试报告有没有在 Test Lab 中运行:
- 您可以将 Firebase Test Lab 概览中列出的 IP 地址段加入许可名单。
- 您可以通过添加系统变量,检查能否修改测试实验室的插桩测试行为。
测试平台不支持会检查设备是否对 Android 系统具有特许控制权(root 权限)的应用。
包含广告或购买选项的应用
我的应用包含广告。我如何确保在发布前测试报告测试中产生的广告相关操作不会被计入广告的展示次数和点击次数(我的广告网络可能会检测到这种情况或对此不满)?系统会在统计 Google 广告数据时自动排除来自发布前测试报告所用地址范围的流量。针对其他广告网络,您需要指定要排除的 IP 地址范围。
如需详细了解如何尽量避免在自动化应用测试过程中产生不当广告收入,请访问 Google Developers 网站。
测试设备在测试期间不能用来购买商品。如果应用提供的订阅或应用内商品会访问应用的部分内容,则测试方案可能会受到限制。
其他应用行为
我的代码经过了混淆处理 (Java) 或被剥离(原生)。我还可以使用发布前测试报告吗?可以。无论您的代码是否经过了混淆处理或被剥离,系统都可以为其运行发布前测试报告测试。
不过,如果您的代码经过了混淆处理或被剥离,测试期间发现的任何崩溃或 ANR 问题的堆栈轨迹也会经过混淆处理或被剥离。为了能够简化堆栈轨迹的调试,我们建议您上传去混淆文件或符号化解析文件。
您可以详细了解如何上传去混淆文件或符号化解析文件。
没有,测试平台不支持给设备预加载媒体或预安装应用。
但是,如果您想在包含预加载数据的应用上运行测试,可以发布一个测试版应用,让媒体文件嵌入其 app bundle。
如果您的应用在进行开放式测试或已发布为正式版,那么发布前测试报告测试将使用一个 ID,当成您的应用已获得许可。
如果您的应用未在进行开放式测试并且没有已发布为正式版的有效 app bundle,那么您的应用将无法通过许可检查。您仍然会收到发布前测试报告结果,但您的应用将处于未经许可的状态。如需对这些应用运行测试,您可以发布封闭式测试版应用,并停用相应许可服务。
默认情况下,测试设备预定义为针对固定的纵向页面方向进行测试。不过,如果您的应用锁定为横屏模式,您看到的应该是横屏模式的视频和屏幕截图。
设备选择
您如何决定要使用哪些设备来测试我的应用?我们会选择能够覆盖整个生态系统的测试设备,并且会考虑设备的普及程度、崩溃频率、屏幕分辨率、制造商、Android 操作系统版本等等。所选的测试设备可能会有所不同。
如果您在应用清单中的目标设备配置中排除了某些设备,则发布前测试报告也会在测试中排除这些设备,而不会将任何额外设备当作应用的目标设备。
发布前测试报告由 Firebase 测试实验室提供技术支持。如需自定义测试的设备,不妨考虑在 Firebase 控制台中执行您自己的测试。
可以。我们将在模拟器上运行应用,并像使用实体设备一样抓取应用。
支持测试的设备类别涵盖手机、平板电脑、Wear OS 和 Chromebook 等桌面设备。不过无法直接在 Android Auto 设备或 Android TV 设备上测试应用。
支持测试的设备类别涵盖搭载 Android 9 及更高版本的设备。