UI 测试

要对 Firefox Focus 运行自动化测试,您需要准备一些东西才能开始。

  1. 安装 Git 并克隆 Focus 代码库到本地。您可以

      git clone https://github.com/mozilla-mobile/focus-android.git
    
  2. 在本演练中,您还需要 Android Studio,可以在 Android 网站 上找到。请按照说明操作。在大多数情况下,Android Studio 会自行设置存储库,您只需打开目录即可。您可能还需要安装 JDK。

  3. 然后,您需要一个 Android 设备(最好是 Nexus 4 或更新版本)或在 Android Studio 中设置模拟器以创建模拟器

    1. 打开 **Android Studio**,然后导航到 **工具** 下拉菜单

    2. 导航到列表中的 **Android** 弹出选择,然后选择“**AVD Manager**”。将打开一个窗口,您可以在其中管理虚拟设备

    3. 选择“**创建虚拟设备**”

    4. 为设备选择手机选项卡,然后选择 Nexus 设备或 Google Pixel(推荐)

    5. 您需要选择 API 级别 22 ~ 26 的镜像,通过选择名称旁边的下载来下载并安装它们。

    6. 选择要安装的镜像,然后单击下一步。

    7. 您可以设置设备的名称和配置,但建议设置以下更改的配置

      • 摄像头:无(前后均为)

      • 图形:自动

      • 多核 CPU:未选中

    8. **设备测试**:如果您希望在设备上运行测试,则需要在设置菜单中启用开发者选项(通常通过点击 **关于手机** -> **版本号** 7 次来实现),并启用“**USB 调试**”。然后通过 USB 数据线将手机连接到电脑。

    我们的 CI 目前使用以下硬件/软件配置

    Firefox Focus

    • Nexus 6,API 23 模拟器

    • Pixel 2,API 26 模拟器

    Firefox Klar

    • Nexus 9,虚拟,API 级别 26

  4. 您现在可以运行自动化测试了!

  5. 单击 Android Studio 的左下角,并启用“**构建变体**”。构建变体的值应设置为以下之一

    设备上:‘**focusArmDebug**’ 或 ‘**klarArmDebug**’

    模拟器:‘**focusX86Debug**’ 或 ‘**klarX86Debug**’

  6. 单击 Android Studio 左上角路径视图下方的下拉菜单,然后选择“**测试**”

  7. 导航子目录到要运行的测试的文件夹位置。例如,UI 测试位于 **focus-android/app/src/androidTest/java/org.mozilla.focus.activity**

  8. 要运行文件夹中的所有测试,请右键单击文件夹并选择运行。对于单个测试,您将执行相同的操作,但右键单击特定的测试。

  9. 选择您的模拟器或设备(通过 ADB 连接)。

然后,Android Studio 将编译并在模拟器或设备上安装 Focus 并开始运行测试。

如果您只需要运行 Focus,请从 **配置** 下拉菜单中选择“**app**”,然后按运行按钮。

您可能需要在第一次运行时按照提示授予应用程序访问 Android 不同部分(例如存储访问)的权限,否则测试将失败,或者手动为 Focus 打开存储权限。

需要注意的是,并非所有测试都可以在模拟器环境中通过。这些测试旨在在我们的 CI 设置上运行,虽然大多数测试不会出现问题,但 **BadURLTest** 将在未安装 Google Play 商店的普通模拟器环境中失败,因为它会尝试解码 market:// URL。此外,**AdBlockingTest** 被抑制,因为虽然它在本地通过,但由于网络设置,它在我们的 CI 上失败了。我保留了测试脚本以供将来参考。

(由 1Jamie 起草)