运行 Robo 脚本 (iOS+)

本文档介绍了如何使用 Robo 脚本,这些脚本是一些测试,用于自动执行移动应用的手动质量检查任务,并有助于实现持续集成 (CI) 和发布前测试策略。例如,您可以使用 Robo 脚本测试常见的用户操作历程或提供特定的界面 (UI) 输入,例如用户名和密码。Robo 脚本是 Robo 测试的一项功能。

Robo 脚本使用 Robo 测试作为测试引擎。在最基本的形式中,Robo 脚本由一系列界面操作(例如输入文本“username”,然后点按“确定”按钮)组成。Robo 脚本还可包含等待元素显示、点按元素内特定位置以及执行 Android 调试桥 (adb) shell 命令等操作。

与传统测试框架相比,Robo 脚本具有以下优势:

功能 说明
非常稳健 Robo 脚本可以容忍不同应用版本间的重大结构和行为差异以及应用不稳定性。
开放 Robo 脚本执行完成后,基础 Robo 测试可以接管并继续测试应用。这种持续的测试方式可实现几个关键用例。例如,您可以通过执行自定义登录流程,使用 Robo 脚本让应用处于特定状态。
可记录 您无需手动编写 Robo 脚本。您可以使用 Android Studio 中的 Robo 脚本记录器记录这些脚本。创建或修改 Robo 脚本通常不需要具备任何移动开发知识。
灵活 Robo 脚本可以与游戏中常见的非原生界面元素进行交互。

Robo 脚本会在 Robo 测试期间有条件地触发,这使得用户可以为实现更大的覆盖率或针对特定功能而增强 Robo 的行为。与传统测试框架相比,Robo 脚本提供以下支持:

  • 各种触发条件,例如,特定应用软件包名称有效(或无效),亦或有特定元素显示(或未显示)在屏幕上。
  • 执行控制措施,例如,执行次数上限、优先级和相关抓取阶段。
  • 非常规操作类型(基于条件的操作、元素忽略操作、屏幕关闭操作)。

我们建议您尽可能使用 Robo 脚本,因为它们易于维护。例如,您可以使用 Robo 脚本执行以下操作:

  • 探索重要的工作流,深入应用功能的核心。例如,您可以执行登录操作、在首次启动后设置应用的状态,以及注册新用户。
  • 让 Robo 专注于应用的特定部分,以便充分利用 Robo 测试时间。Robo 脚本会指导 Robo 测试到达应用的相关部分,在该部分中,Robo 测试会继续执行全自动抓取操作。
  • 让应用处于特定状态或进入特定屏幕以执行分析,例如分析应用内消息功能、隐私权政策屏幕或游戏的特定关卡。
  • 在 Robo 脚本执行完成后,执行端到端插桩测试(可选择是否继续执行 Robo 测试的全自动抓取操作)。

您可以使用更高级的 Robo 脚本功能执行以下操作:

  • 在 Robo 开始抓取被测应用之前或完成抓取之后执行操作,例如在抓取之前清理被测应用数据或更改设备设置。
  • 更改 Robo 在抓取过程中方方面面的行为,尤其是以下操作:
    • 指示 Robo 忽略某些界面 widget 或应用屏幕。
    • 在 Robo 从特定屏幕回溯时为其提供可执行的自定义操作。
    • 指示 Robo 每当在抓取过程中遇到特定应用屏幕时执行特定操作。
  • 完全自定义 Robo 的抓取方式。例如,您可以组合使用基于条件的操作和无条件操作,使被测应用在整个抓取过程中始终处于后台,同时执行各种设备操作并关闭屏幕上显示的任何弹出式对话框。

请注意,Robo 脚本不会取代所有类型的测试。您仍然需要通过单元测试来捕获应用中的低级别逻辑 bug;这些测试通常不需要 Android 或 iOS 环境。我们建议您使用定向插桩测试来补充 Robo 脚本测试。定向插桩测试可以包含有关业务逻辑的特定详细断言,而这些断言最适合通过代码来表达。

后续步骤