App Testing 代理是一个由 Gemini in Firebase 提供支持的测试用例生成、管理和执行代理。您可以用自然语言定义测试目标,代理会使用 AI 来了解和浏览您的应用,模拟用户互动,并提供详细的测试结果。
App Testing 代理如何使用您的数据
App Testing 代理由 Gemini in Firebase 提供,并适用相同的条款。如需详细了解 Gemini in Firebase 如何使用您的数据,请参阅 Gemini in Firebase 如何使用您的数据。
准备工作
如果您尚未在 Firebase 中注册您的应用,请进行注册。
如果您没有使用任何其他 Firebase 产品,只需创建一个项目并注册您的应用,无需为您的应用添加任何 SDK。不过,如果将来决定使用其他产品,请务必完成使用 Firebase 控制台添加 Firebase 中的所有步骤。
当您准备好将应用的预发布版本分发给测试人员时,请按照常规流程构建 APK 或 AAB 文件。您必须使用调试密钥或应用签名密钥对 APK 文件进行签名。
创建测试用例
App Testing 代理使用 Gemini in Firebase,可以根据您在 Firebase 控制台中选择的自定义设置,创建 AI 引导测试或随机抓取测试。上传 APK 或 AAB 文件后,打开 Firebase 控制台的 App Distribution 页面,然后按照以下步骤操作:
- 在测试用例页面上,点击新建测试用例。如果您不想创建自己的测试用例,可以修改或使用提供的测试用例示例。
- 在添加测试用例对话框中,添加测试用例名称和目标,以描述您希望 App Testing 代理在您的应用中测试的内容,从而自定义测试用例。
- (可选)在添加测试用例对话框中,您可以添加可选的提示并提供更多信息,以帮助 App Testing 代理了解和浏览您的应用。
- (可选)在添加测试用例对话框中,您可以添加可选的成功标准,并为 App Testing 代理提供额外指导,帮助其判断测试何时成功。
- 完成自定义测试后,点击保存。
您还可以选择为测试用例添加其他步骤。如果您添加了其他步骤,可以按您希望 App Testing 代理进行测试的首选顺序重新排列它们。
借助 App Testing 代理,您可以向应用的行为中添加系统变量,从而修改其在 Test Lab 中运行时的表现。如需了解详情,请参阅使用 Android Studio 运行测试。
测试用例示例
下面举例说明如何使用 App Testing 代理创建测试用例:
测试首页 |
测试标题
|
首页加载
|
目标
|
加载首页
|
提示
|
跳过所有新用户引导屏幕。关闭所有弹出式窗口。无需登录。
|
成功标准
|
应用主页面在屏幕上可见,所有图片均已加载完成,且未显示任何错误。
|
使用 Gemini 创建测试
借助 App Testing 代理,您可以点击运行测试按钮,使用 Gemini 运行 AI 引导测试。您可以使用其中一个现有测试用例,并在 App Testing 代理自定义屏幕中选择 AI 引导测试。Gemini 将使用提供的测试用例来抓取您的核心用户体验历程。
如果您不想使用现有测试用例来创建 AI 引导测试,可以使用运行测试按钮来创建 AI 引导测试或随机抓取测试。您可以在 App Testing 代理自定义屏幕上选择要运行的测试类型。
您可以前往版本页面,选择一个特定版本,然后进入该版本的 App Testing 代理标签页以查看测试结果。查看详情按钮会打开“测试结果”对话框,并显示应用的任何问题、屏幕截图以及 Gemini 在测试过程中的历程。
创建随机抓取测试
在 App Testing 代理中创建随机抓取测试时,您将使用自动化测试助手功能。借助自动化测试助手功能,您可以自动将应用 build 分发给测试人员。该功能会根据您在 App Testing 代理自定义对话框中添加的自定义设置,随机抓取应用。
自动测试 build
如需自动在新的 build(例如来自 CI/CD 流水线)上运行 App Testing 代理测试,您可以使用 Firebase CLI、App Distribution 的 Gradle 或 Fastlane 插件将 build 分发给该代理。
使用 Firebase CLI 自动测试 build
您必须至少指定一个测试设备和一个测试用例 ID,才能使用 App Testing 代理功能。您可以在 Firebase 控制台的“测试用例”页面上查找并下载测试用例 ID。如需详细了解如何开始使用 Firebase CLI 以及配置分发的不同方式,请参阅使用 Firebase CLI 将 Android 应用分发给测试人员。
运行 appdistribution:distribute
命令以上传您的应用,并使用下列参数来配置您的应用分发,使其能够与 App Testing 代理功能协同工作:
appdistribution:distribute 选项 |
--test-devices 或 --test-devices-file
|
您要将 build 分发给 App Testing 代理功能的测试设备。
您可以采用以英文分号分隔的测试设备列表的形式指定测试设备:
--test-devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
或者,您可以指定一个纯文本文件的路径,该文件包含以英文分号分隔的测试设备列表:
--test-devices-file: "/path/to/test-devices.txt"
|
--test-username
|
测试期间用于自动登录的用户名。
|
--test-password 或 --test-password-file
|
测试期间用于自动登录的密码。
或者,您可以指定一个纯文本文件的路径,该文件包含密码:
--test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
异步运行测试。访问 Firebase 控制台查看自动测试结果。
|
--test-case-ids 或 --test-case-ids-file
|
以英文逗号分隔的测试用例 ID 列表,用于运行 AI 赋能的自动化测试:
--test-case-ids: "load-app,play-the-first-level"
或者,您可以指定一个纯文本文件的路径,该文件包含以英文逗号或换行符分隔的测试用例 ID 列表:
--test-case-ids-file: "/path/to/test-case-ids.txt"
|
使用 Gradle 自动测试 build
您必须至少指定一个测试设备和一个测试用例 ID,才能使用 App Testing 代理功能。您可以在 Firebase 控制台的“测试用例”页面上查找并下载测试用例 ID。如需详细了解如何开始使用 Gradle 以及配置分发的不同方式,请参阅使用 Gradle 将 Android 应用分发给测试人员。
您可以通过添加至少一个 firebaseAppDistribution
部分来配置 App Distribution,并使用下列参数来配置您的应用分发,使其能够与 App Testing 代理功能协同工作:
App Distribution Build 参数 |
testDevices 或 testDevicesFile
|
您要将 build 分发给 App Testing 代理功能的测试设备。
您可以采用以英文分号分隔的设备规格列表的形式指定测试设备:
testDevices="model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
或者,您可以指定一个文件的路径,该文件包含以英文分号分隔的设备规格列表:
testDevicesFile="/path/to/testDevices.txt"
|
testUsername
|
测试期间用于自动登录的用户名。
|
testPassword 或 testPasswordFile
|
测试期间用于自动登录的密码。
或者,您可以指定一个纯文本文件的路径,该文件包含密码:
testPasswordFile="/path/to/testPassword.txt"
|
testNonBlocking |
异步运行测试。访问 Firebase 控制台查看自动测试结果。
|
testCases 或 testCasesFile
|
以英文逗号分隔的测试用例 ID 列表,用于运行 AI 赋能的自动化测试:
testCases: "load-app,play-the-first-level"
或者,您可以指定一个纯文本文件的路径,该文件包含以英文逗号或换行符分隔的测试用例 ID 列表:
testCasesFile: "/path/to/test-case-ids.txt"
|
使用 Fastlane 自动测试 build
您必须至少指定一个测试设备和一个测试用例 ID,才能使用 App Testing 代理功能。您可以在 Firebase 控制台的“测试用例”页面上查找并下载测试用例 ID。如需详细了解如何开始使用 Fastlane 以及配置分发的不同方式,请参阅使用 Fastlane 将 Android 应用分发给测试人员。
在 ./fastlane/Fastfile
通道中,添加 firebase_app_distribution
代码块。使用下列参数来配置您的应用分发,使其能够与 App Testing 代理功能协同工作:
firebase_app_distribution 参数 |
test_devices 或 test_devices_file
|
您要将 build 分发给 App Testing 代理功能的测试设备。您可以采用以英文分号分隔的测试设备列表的形式指定测试设备:
test_devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
或者,您可以指定一个纯文本文件的路径,该文件包含以英文分号分隔的测试设备列表:
test_devices_file: "/path/to/test-devices.txt"
|
test_username
|
测试期间用于自动登录的用户名。
|
test_password 或 test_password_file
|
测试期间用于自动登录的密码。
或者,您可以指定一个纯文本文件的路径,该文件包含密码:
test_password_file: "/path/to/test-password.txt"
|
test_non_blocking |
异步运行测试。访问 Firebase 控制台查看自动测试结果。
|
--test_case_ids 或 --test_case_ids_file
|
以英文逗号分隔的测试用例 ID 列表,用于运行 AI 赋能的自动化测试:
--test_case_ids: "load-app,play-the-first-level"
或者,您可以指定一个纯文本文件的路径,该文件包含以英文逗号或换行符分隔的测试用例 ID 列表:
--test_case_ids_file: "/path/to/test-case-ids.txt"
|
调试您的测试结果
如果测试结果与预期不同,您可以在“测试结果”页面上使用查看详情下方的显示代理视图切换开关来调试测试。代理视图会显示 App Testing 代理在使用应用的无障碍功能信息时能够检测到的屏幕元素。如果您想更详细地查看代理看到的内容,可以从操作溢出菜单下载该信息。
您还可以在“测试结果”页面上使用查看制品按钮查看测试结果的所有视频、日志和 Cloud 制品。
已知问题和限制
App Testing 代理预览版存在一些已知限制:
- 由于 App Testing 代理使用生成式 AI 测试您的应用,它有时会遵循相同指令,但执行不同的操作。
- App Testing 代理仅支持以下操作:点按、输入文本、向上滚动、向下滚动和等待。
- App Testing 代理在执行仅包含单个步骤但需要多个操作才能完成的测试时遇到问题。将复杂任务分解为多个较短的步骤可以提升性能。
- App Testing 代理有时无法滚动来显示屏幕外的其他元素。如果没有可滚动的视觉指示,这种情况会更频繁地发生。作为临时解决方法,可以使用“提示”字段来建议滚动。
- App Testing 代理有时会遇到计数问题,例如执行某个操作的特定次数。
测试配额
在预览版期间,AI 引导测试会在配额限制内免费提供。默认配额限制为每月 100 次测试。
请注意,如果您选择在多台设备上运行多个测试用例,或在多台设备上运行同一测试用例,这将计为多次测试。例如,如果您在 2 台设备上运行 2 个测试用例,则总共计为 4 次测试。
如需将配额提高到超过默认限制,请与 Firebase 支持团队联系,并提供您的应用场景。