App Testing 代理功能处于预览版 阶段。预览版不在任何服务等级协议 (SLA) 或弃用政策的涵盖范围内,因此可能只会得到有限的支持或得不到任何支持。
为了使用 App Testing 代理,您需要从 Firebase 控制台 中选择启用该功能。
如需了解详情,请参阅
访问应用测试代理预览版 。
App Testing 代理是一个由 Gemini in Firebase 提供支持的测试用例生成、管理和执行代理。您可以用自然语言定义测试目标,代理会使用 AI 来了解和浏览您的应用,模拟用户互动,并提供详细的测试结果。
App Testing 代理如何使用您的数据
App Testing 代理由 Gemini in Firebase 提供,并适用相同的条款。如需详细了解 Gemini in Firebase 如何使用您的数据,请参阅 Gemini in Firebase 如何使用您的数据 。
准备工作
如果您尚未在 Firebase 中注册您的应用 ,请进行注册。
如果您没有使用任何其他 Firebase 产品,只需创建一个项目并注册您的应用,无需为您的应用添加任何 SDK。不过,如果将来决定使用其他产品,请务必完成使用 Firebase 控制台添加 Firebase 中的所有步骤。
注意 :向 Firebase 注册应用时,请务必输入您要分发的应用所用的软件包名称。软件包名称值区分大小写。当您向 Firebase 项目注册您的应用后,便无法在 Firebase 中更改该值。
当您准备好将应用的预发布版本分发给测试人员时,请按照常规流程构建 APK 或 AAB 文件,然后将其上传到 Firebase 控制台 中的 App Distribution。您必须使用调试密钥或应用签名密钥对 APK 文件进行签名。
创建测试用例
为了运行 AI 引导的测试,App Testing 代理会使用您的自然语言测试用例来针对您的应用执行测试。
每个测试用例都细分为多个步骤,这些步骤将按顺序执行。借助步骤,您可以将测试用例拆分为各自具有成功标准的不同阶段。代理可以在任何一个步骤期间执行多项操作。
如需创建测试用例,请打开 Firebase 控制台 的 App Distribution 页面,然后执行以下步骤:
在测试用例 标签页上,点击新建测试用例 。如果您不想创建自己的测试用例,可以修改或使用提供的测试用例示例 。
在添加测试用例 对话框中,为测试用例命名。名称用于标识测试,但会被代理忽略。
(可选)选择一个包含设置步骤的前提条件测试用例 ,以便在主测试之前运行。如果前提条件测试失败,整个测试将被标记为失败。前提条件测试和主要测试的步骤和结果将一起显示在测试结果中。
考虑点击添加其他步骤 按钮,来将测试拆分为多个步骤。
为每个步骤指定一个目标 ,用于说明应用测试代理在该步骤中应执行的操作。
(可选)添加提示 以提供更多信息,以帮助应用测试代理在该步骤中了解和浏览您的应用。
(可选)添加成功标准 ,以帮助应用测试代理确定何时已成功完成该步骤。
完成自定义测试后,点击保存 。
测试用例示例
下面举例说明如何使用 App Testing 代理创建测试用例:
测试首页
测试标题
首页加载
目标
加载首页
提示
跳过所有新用户引导屏幕。关闭所有弹出式窗口。无需登录。
成功标准
应用主页面在屏幕上可见,所有图片均已加载完成,且未显示任何错误。
运行测试
借助应用测试代理,您可以点击“版本”或“测试用例”页面中的运行测试 按钮,在控制台中运行 AI 引导测试 。系统会打开应用测试代理自定义界面,您可以在其中选择一个或多个现有测试用例供代理执行。您还可以选择要针对哪些设备进行测试,以及是否要提供任何登录凭证。
您也可以选择更改测试类型,来运行随机抓取测试 。随机抓取测试使用自动化测试助手 功能。
您可以前往版本 页面,选择一个特定版本,然后进入该版本的应用测试代理 标签页以查看测试结果。查看详情 按钮会打开“测试结果”对话框,并显示应用的任何问题、屏幕截图,以及 Gemini 在测试过程中执行的操作。
自动测试 build
如需自动在新的 build(例如来自 CI/CD 流水线)上运行应用测试代理测试,您可以使用 App Distribution 的 Gradle 或 Fastlane 插件或 Firebase CLI 将 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=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
或者,您可以指定一个纯文本文件的路径,该文件包含以英文分号分隔的测试设备列表:
--test-devices-file "/path/to/test-devices.txt"
您可以使用 gcloud CLI 查找可用的设备型号。
--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=tokay, version=36, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
或者,您可以指定一个文件的路径,该文件包含以英文分号分隔的设备规格列表:
testDevicesFile="/path/to/testDevices.txt"
您可以使用 gcloud CLI 查找可用的设备型号。
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=tokay, version=36, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"
或者,您可以指定一个纯文本文件的路径,该文件包含以英文分号分隔的测试设备列表:
test_devices_file: "/path/to/test-devices.txt"
您可以使用 gcloud CLI 查找可用的设备型号。
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"
使用 YAML 文件导入和导出测试用例
如果您想在 Firebase 控制台之外管理测试用例,从 YAML 文件导入测试用例会很有用。此外,导出测试用例以在项目之间移动它们也很有用。您可以使用 LLM 来优化现有测试用例或创建新的测试用例。您可以在 Firebase 控制台的“测试用例”页面中导入和导出测试用例,也可以使用 Firebase CLI 以编程方式执行此操作。示例:
- displayName : Setup
id : setup
steps :
- goal : Log in
hint : Any username and password will work
- displayName : Smoke test
id : smoke_test
prerequisiteTestCaseId : setup
steps :
- goal : Go through the onboarding flow
hint : Tap the next button until you reach the home screen
successCriteria : The main app home page is visible
- goal : Open the settings page
hint : The settings button is in the top right corner
successCriteria : The settings page is visible
调试您的测试结果
如果测试结果与预期不同,您可以在“测试结果”页面上使用查看详情 下方的显示代理视图 切换开关来调试测试。代理视图会显示 App Testing 代理在使用应用的无障碍功能信息时能够检测到的屏幕元素。如果您想更详细地查看代理看到的内容,可以从操作溢出菜单下载该信息。
您还可以在“测试结果”页面上使用查看制品 按钮查看测试结果的所有视频、日志和其他 Cloud 制品。
已知问题和限制
App Testing 代理预览版存在一些已知限制:
由于 App Testing 代理使用生成式 AI 测试您的应用,它有时会遵循相同指令,但执行不同的操作。
应用测试代理仅支持以下操作:点按、输入文本、向上/向下/向左/向右滑动、长按、拖放、返回和等待。
App Testing 代理在执行仅包含单个步骤但需要多个操作才能完成的测试时遇到问题。将复杂任务分解为多个较短的步骤可以提升性能。
App Testing 代理有时无法滚动来显示屏幕外的其他元素。如果没有可滚动的视觉指示,这种情况会更频繁地发生。作为临时解决方法,可以使用“提示”字段来建议滚动。
App Testing 代理有时会遇到计数问题,例如执行某个操作的特定次数。
如果启用了 FLAG_SECURE ,App Testing 代理将无法导航您的应用。它不会显示应用的屏幕截图,而只会显示空白屏幕。
测试配额
在预览版期间,AI 引导测试会在配额限制内免费提供。默认配额限制为每个 Firebase 项目每月 200 次测试。
请注意,如果您选择在多台设备上运行多个测试用例,或在多台设备上运行同一测试用例,这将计为多次测试。例如,如果您在 2 台设备上运行 2 个测试用例,则总共计为 4 次测试。
如需将配额提高到超过默认限制,请与 Firebase 支持团队 联系,并提供您的应用场景。