Android Studio 学习路线

Journeys for Android Studio 利用 AI 的视觉和推理能力,根据您的自然语言指令浏览和测试您的应用。 您的一组指令(称为“旅程”)会转换为 AI 对您的应用执行的操作。此外,您还可以编写和描述更复杂的断言,AI 会根据其在设备上看到的内容来评估这些断言。

Android Studio 的学习路线。
Journeys for Android Studio.

由于 Gemini 会推理出要执行哪些操作才能实现目标,因此旅程对应用布局或行为的细微变化具有更强的适应能力,从而减少了在针对不同版本的应用和不同设备配置运行时出现的不稳定测试。

您可以直接在 Android Studio 中或通过命令行针对任何本地或远程 Android 设备编写和运行旅程。IDE 提供了一种新的编辑器体验,用于制作旅程,并提供丰富的测试结果,帮助您更好地了解 Gemini 的推理过程和旅程的执行情况。

编写旅程

Android Studio 提供了一个文件模板和新的编辑器体验,让创建和修改旅程变得更加轻松。旅程使用 XML 语法编写,用于整理旅程说明和步骤。

Android Studio 中的历程编辑器,显示了一个包含历程步骤的 XML 文件。

如需创建并开始修改旅程,请执行以下操作:

  1. 在 Android Studio 的 Project 面板中,右键点击要为其编写旅程的应用模块。
  2. 依次选择 New > Journey Test
  3. 在随即显示的对话框中,提供旅程的名称和说明。

    Android Studio 中用于创建历程文件的对话框。
    Android Studio 中用于创建旅程 文件的对话框。

  4. 点击 Finish 。Android Studio 会使用您选择的名称为您的旅程创建一个 XML 文件。您可以使用 Code 视图直接修改 XML,也可以使用 Design 视图获得简化的修改体验。

  5. Design 视图中查看旅程时,请使用文本字段描述旅程的每个步骤。每个步骤都可以包含您希望 Gemini 执行的描述性操作,或者您希望 Gemini 评估的断言。

  6. 按键盘上的 Enter 键,即可在同一 旅程中开始新步骤。您可以根据需要为要定义的旅程的每个步骤重复此操作。

配置 build 变体

旅程针对应用的特定 build 变体运行。首次使用向导创建旅程时,生成的测试套件会配置为针对 Android Studio 中处于活跃状态的 build 变体运行。

但是,如果您稍后在 Android Studio 中切换了活跃的 build 变体(例如,切换到不同的产品变种,如 demoDebug),但未更新配置,则运行历程将会失败。如需解决此问题,您必须将新 变体添加到targetVariants属性在您的testSuites块中的 模块级build.gradle.kts(或build.gradle)文件。

例如,如需为 demoDebug 变体配置 journeysTest 套件,请执行以下操作:

android {
    // ...
    testSuites {
        create("journeysTest") {
            // ...
            targetVariants += listOf("demoDebug")
        }
    }
}

编写旅程的提示

虽然 AI 能够理解以受支持的语言编写的大多数步骤,但遵循以下编写旅程的提示可以获得更准确、更符合预期的结果:

  • 假设您的应用已在前台运行: 运行旅程会自动启动您的应用。旅程的步骤应在应用完全启动后开始。 也就是说,您无需将“启动应用”作为步骤包含在内。
  • 使用明确的语言: 准确的语言可以最大限度地减少误解并提高可靠性。
不要使用 建议做法
“选择关闭按钮” “点按‘关闭’”或直接使用“关闭”
“输入‘芹菜’” “在主屏幕顶部的搜索栏中输入‘芹菜’”
“滑动以关闭” “向左滑动以关闭,然后该卡片应不再可见”
  • 将成功条件作为步骤的一部分包含在内: 这有助于 Gemini 更好地理解您的意图,并明确操作何时完成以及何时可以开始下一步操作。
不要使用 建议做法
“选择发送按钮” “点按提交按钮发送电子邮件。这应该会关闭电子邮件并返回到收件箱。”
“前往购物车” “点按购物车图标,系统会将您带到购物车页面。验证其中是否包含零件商品”
“点击第一个视频” “点击第一个视频并等待其完全加载”
  • 优化旅程: 如果旅程未按预期执行,您可以 查看结果并检查“采取的操作”和相应的 “推理”,了解 Gemini 可能未按预期执行步骤的原因。使用此信息可以使您的指令更加清晰。
  • 将历程分解为更具体的步骤: 虽然 AI 可以解读多操作步骤,但有时更精细的离散步骤可以提高历程的准确性和可重现性。
    • “错误:无法在允许的最大尝试次数内成功完成操作”:如果您遇到此错误,请尝试将失败的步骤分解为两个或更多个较小的步骤。这是因为,如果 AI 在尝试与您的应用进行最大次数的互动后无法完成操作,则会发生此错误。

受支持和不受支持的功能

下面简要介绍了编写旅程时受支持和尚未完全受支持的功能。以下列表并不详尽。

旅程中支持 以下操作:

  • 点按 界面元素。
  • 输入 文本,以将其输入到文本字段中。
  • 滑动/滚动 到特定方向,以浏览界面。

以下功能目前尚未完全受支持 或可能执行不一致:

  • 多指手势(例如,双指张合以进行缩放) - 需要同时在屏幕上进行两个或多个接触点的互动,例如双指张合以进行放大或缩小,或使用双指滑动。
  • 长按 - 按住手指的时间比 标准点按的时间长。
  • 点按两次 - 快速连续点按屏幕上的同一位置两次。
  • 屏幕旋转/折叠 - 处理设备屏幕方向 (例如,在竖屏和横屏之间)或可折叠设备 的物理状态(例如,打开或关闭)的变化。
  • 记忆 - 在之前的互动或步骤中保留和回忆特定信息、上下文或用户输入。
  • 计数 - 准确跟踪数量、频率或进度。
  • 条件语句 - 根据是否满足其他 指定条件来执行操作。

功能和能力在不断改进。建议您稍后查看此页面,了解其他功能和能力。如需帮助我们改进 Journeys,请分享您的反馈

运行旅程

您可以像运行任何其他插桩测试一样,在任何可用的本地或远程设备上运行旅程,Android Studio 会生成丰富的测试结果,帮助您了解旅程的执行情况。

如需测试旅程,请执行以下操作:

  1. 从主工具栏中选择目标设备,就像运行插桩测试时一样。
  2. 找到要测试的旅程 XML 文件,并在编辑器中将其打开。
  3. 在编辑器中,执行以下操作之一:
    1. 如果您处于 Design 视图中,请点击 Run Journey
    2. 如果您处于 Code 视图中,请点击 Run 'test' (在 XML 中定义旅程名称的位置旁边的装订线中)。

Android Studio 会为您创建一个 Journeys Test 配置,并在目标设备上运行该配置。在执行期间,Android Studio 会构建和部署您的应用,并连接到 Gemini 以确定要为旅程的每个步骤执行哪些操作。

Android Studio 中的历程测试结果面板,显示了步骤详细信息和 Gemini 的推理。
Android Studio 中的旅程测试结果面板,显示 步骤详细信息和 Gemini 的推理。

针对任何预安装的应用运行旅程

您可以在测试设备上针对预安装的应用运行旅程。如果您想测试应用的正式版,或者尚未将应用更新到 Android Gradle 插件 9.0.0 或更高版本,这将非常有用。

  1. 打开或创建一个已更新到 Android Gradle 插件 9.0.0 或更高版本的新项目
  2. 编写旅程
  3. 修改旅程的运行配置,并添加以下环境变量。当您尝试从 Android Studio 运行旅程时,系统会自动创建运行配置。
    • JOURNEYS_CUSTOM_APP_ID 设置为目标应用的软件包 ID。
  4. 运行您修改的旅程。Android Studio 应在您指定的目标应用上执行旅程的步骤。

通过命令行运行旅程

如需通过命令行运行 Journeys,请使用 Android CLI

查看结果

当 Android Studio 完成旅程测试后,测试结果面板会自动显示,向您展示结果。

Android Studio 中的历程测试结果面板,显示了步骤详细信息和 Gemini 的推理。
Android Studio 中的旅程测试结果面板,显示 步骤详细信息和 Gemini 的推理。

与您可能在 Android Studio 中运行的其他插桩测试相比,旅程的结果显示方式存在一些差异。

  • Tests 面板将旅程分解为离散的步骤。您可以点击每个步骤,详细了解 Gemini 如何执行该步骤。
  • Results 面板显示丰富的信息,帮助您了解 Gemini 如何理解和推理您的旅程,以及如何执行该旅程。
    • 系统会显示发送给 Gemini 的屏幕截图,以便在步骤中的每个操作中提供视觉辅助。
    • 每个屏幕截图旁边都会描述采取的每项操作以及 Gemini 采取该操作的原因。
    • 步骤中的每个操作都有编号。

已知问题

  • 测试旅程时,系统默认授予应用的所有权限。
  • 在搭载 Android 15(API 级别 35)的设备上测试旅程时,您 可能会在设备上看到一条警告,指出“不安全的应用已被屏蔽”的 “AndroidX Crawler”。您可以点击 Install anyway (仍要安装)以绕过此检查。或者,您可以 配置设备上的开发者选项,并停用 “通过 USB 验证应用”选项。