OmniLab ATS 中的云编排

云编排应用提供了一种高性能、可扩缩的方式来管理 Cuttlefish 实例,尤其适用于基于 ARM 的虚拟设备 (CHD)。OmniLab ATS 支持云端编排,因此您可以在虚拟设备上运行测试。在开始使用虚拟设备之前,请先按照 OmniLab Android Test Station 安装 OmniLab ATS。

概览

借助 Cloud Orchestration,OmniLab ATS 可将 Cuttlefish 实例的管理工作委托给专用 Cloud Orchestrator 服务。与现有的本地模式和远程模式相比,这种方法具有以下几点优势,同时还能保留熟悉的用户体验:

  • 并行启动实例:允许同时启动多个 Cuttlefish 实例,从而显著减少测试开始前的开销时间。
  • 可伸缩性:适合大规模测试环境。
  • 资源隔离:将测试作业环境(ATS 工作器)与设备模拟环境分离。

前提条件

  • 能够运行 Docker 的宿主机
  • 访问 Cuttlefish 编排 Docker 映像

设置 Cloud Orchestrator 服务

Cloud Orchestrator 服务管理 Cuttlefish 实例的生命周期。您可以将该服务部署在各种环境中,并且该服务支持 x86 和 ARM 架构:

  • 与 ATS worker 位于同一主机:在同一台机器上的 Docker 容器中运行
  • 单独的机器:在能够运行 Docker 的本地服务器上运行
  • 云实例:在云环境中的虚拟机上运行,例如 Google Compute Engine

安装和设置服务

按照 Cloud Android Orchestration README 启动服务。

身份验证和权限

如果 Cloud Orchestrator 服务在远程机器上运行,请确保 ATS 工作器主机具有通过 HTTP 请求访问该服务的必要权限。如果不允许 HTTP 连接,您可能需要设置 SSH 端口转发。如需了解详情,请参阅试用云编排程序

预期状态

成功启动 Cloud Orchestrator 服务后,应该可以使用 HTTP 访问该服务。您可以通过查询其 API 来验证其状态:

  • Ping 服务:您应该能够从 OmniLab ATS 工作器主机访问服务端点。例如,运行 curl -I http://localhost:8080/v1/zones/local/hosts 应该会返回成功的 HTTP 响应(HTTP/1.1 200 OK 或重定向到 /username302 Found),以确认服务处于活跃状态且可访问。

为云编排配置 OmniLab ATS

在启动 OmniLab ATS 之前,请确保 OmniLab ATS 工作器主机上的所有 Cuttlefish 实例都已停止。OmniLab ATS 在测试周期内会自动启动和停止虚拟设备,而现有的 Cuttlefish 实例与 OmniLab ATS 管理的实例冲突。如需详细了解如何停止 Cuttlefish 实例,请参阅停止 Cuttlefish

如需在 OmniLab ATS 中启用 Cloud Orchestration,请在启动 OmniLab ATS 时传递特定标志:

mtt start --use_cloud_orchestrator \
  --cloud_orchestrator_service_url=http://HOST:PORT \
  --max_local_virtual_devices N \
  --use_host_network
  • --use_cloud_orchestrator:启用 Cloud Orchestration 功能。
  • --cloud_orchestrator_service_url:指定 Cloud Orchestrator 服务正在监听的网址,例如 http://localhost:8080
  • --max_local_virtual_devices:设置 OmniLab ATS 可以同时分配的虚拟设备的最大数量。默认数量为 0。
  • --use_host_network:为容器使用宿主机的网络命名空间。 这是访问 Cloud Orchestrator 服务所必需的。

使用云端编排的设备运行测试

本部分介绍了在云编排的虚拟设备上运行测试的步骤。

选择设备

在设备列表上,OmniLab ATS 会将云编排的虚拟设备显示为占位符,而不是其实际序列号。占位符以 HOSTNAME:PORT 格式显示(例如,thehostname:6520)。状态是“可用”或“已分配”。“Available”状态占位符表示虚拟设备未运行并且可以分配给测试。

选择“云编排的设备”

图 1. 选择云端编排的虚拟设备。

添加设备操作

当在这些设备上安排测试时,ATS 会自动添加所需的设备操作,以便在测试周期内预配和管理 Cuttlefish 实例。

自动设备操作

图 2. 自动执行设备操作。

设置测试资源

安排测试时,您必须提供所需的测试资源。在设置测试资源部分,请确保将上传的文件映射到正确的资源名称:

  • 将宿主工具软件包(例如 cvd-host_package.tar.gz)映射到名称 cvd_host_package
  • 将设备映像 zip 映射到名称 cvd_device_image

云编排的测试资源

图 3. 映射测试资源。

查看测试运行和日志

测试完成后,您可以在“输出文件”部分查看日志。为 Cloud Orchestrator 管理的实例收集的特定日志包括:

  • launcher.log:来自 Cuttlefish 启动器的日志
  • kernel.log:标准 Android 内核日志