OmniLab ATS admite dispositivos virtuales Cuttlefish que te permiten ejecutar pruebas sin dispositivos Android físicos. Cuttlefish es adecuado para probar funciones independientes del hardware. Antes de comenzar a usar dispositivos virtuales, sigue la guía del usuario para instalar OmniLab ATS.
OmniLab ATS admite dispositivos virtuales en dos modos: local y remoto. En la siguiente tabla, se proporciona una comparación de los dos modos.
Dispositivos virtuales locales | Dispositivos virtuales remotos |
---|---|
Se ejecuta en hosts de trabajadores de ATS | Se ejecuta en hosts remotos a los que los hosts de trabajadores de ATS pueden acceder a través de SSH. |
Basada en x86 | Puede ser x86 o ARM, según la arquitectura de los hosts. |
Son más fáciles de configurar. | Es más complicado de configurar. |
Los dispositivos virtuales locales y remotos se pueden habilitar de forma independiente. Para obtener detalles sobre cada modo, consulta lo siguiente:
Cómo configurar dispositivos virtuales locales
En esta sección, se describen los pasos para configurar OmniLab ATS para dispositivos virtuales locales.
Instala las dependencias de Cuttlefish
Ejecuta el siguiente comando para asegurarte de que se carguen los módulos de kernel necesarios:
sudo modprobe -a kvm tun vhost_net vhost_vsock
Inicia OmniLab ATS con dispositivos virtuales locales
Antes de iniciar OmniLab ATS, asegúrate de que todas las instancias de Cuttlefish estén detenidas. OmniLab ATS inicia y detiene automáticamente los dispositivos virtuales durante el ciclo de prueba, y las instancias existentes de Cuttlefish entran en conflicto con las instancias que administra OmniLab ATS. Para obtener detalles sobre cómo detener instancias de Cuttlefish, consulta Cómo detener Cuttlefish.
Para habilitar los dispositivos virtuales locales, ejecuta lo siguiente:
mtt start --max_local_virtual_devices N
N
es la cantidad máxima de dispositivos virtuales que la ATS de OmniLab puede asignar
de forma simultánea. El valor predeterminado es 0.
Si el comando falla debido a que faltan nodos de dispositivos, sigue los pasos que se indican en el mensaje de error para cargar los módulos del kernel. Si el problema persiste, reinicia la máquina.
Cómo configurar dispositivos virtuales remotos
En esta sección, se describen los pasos para configurar OmniLab ATS para dispositivos virtuales remotos.
Instala las dependencias de Cuttlefish
Para instalar las dependencias de Cuttlefish, sigue estos pasos.
Instala los paquetes de Debian en el host remoto siguiendo los pasos que se indican en Cuttlefish > Get started.
Para configurar la cantidad máxima de dispositivos virtuales en el host remoto, sigue estos pasos:
- Edita
/etc/default/cuttlefish-host-resources
con privilegios de administrador. - Establece
num_cvd_accounts
en la cantidad máxima de dispositivos virtuales que se permitirá en este host. - Ejecuta
sudo systemctl restart cuttlefish-host-resources
. - Ejecuta
ifconfig
y verifica la cantidad de interfacescvd-wtap-*
.
- Edita
Crea una cuenta de SSH
Debido a que el host de ATS de OmniLab se conecta al host remoto a través de SSH, debes preparar una cuenta de SSH en el host remoto. Debido a que la ATS de OmniLab manipula los archivos del directorio HOME, te recomendamos que crees una cuenta dedicada.
El host de ATS de OmniLab requiere un par de claves SSH para acceder al host remoto sin una contraseña. En los siguientes pasos, se describe cómo configurar las claves SSH:
- Para generar una clave privada y una clave pública, ejecuta
ssh-keygen
en el host de ATS de OmniLab. - Sube y agrega la clave pública a
~/.ssh/authorized_keys
en el host remoto.
Si tu cuenta de SSH es diferente de la que se usa para instalar dependencias de Cuttlefish, para permitir que la cuenta de SSH inicie Cuttlefish, ejecuta este comando en el host remoto:
sudo usermod -aG kvm,cvdnetwork,render $USER
Cómo iniciar OmniLab ATS con dispositivos virtuales remotos
Antes de iniciar OmniLab ATS, asegúrate de que todas las instancias de Cuttlefish estén detenidas. OmniLab ATS inicia y detiene automáticamente los dispositivos virtuales durante el ciclo de prueba, y las instancias existentes de Cuttlefish entran en conflicto con las instancias que administra OmniLab ATS. Si deseas obtener información detallada para detener instancias de Cuttlefish, consulta Cómo detener Cuttlefish.
Para obtener un mejor rendimiento, recomendamos configurar el host de ATS de OmniLab y el host remoto en una red de área local.
Para habilitar los dispositivos virtuales remotos, ejecuta este comando en el host de ATS de OmniLab:
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
es el nombre de la cuenta de SSH.
HOST
es la dirección IPv4 del host remoto.
N
es la cantidad máxima de dispositivos virtuales que OmniLab ATS puede asignar de forma simultánea.
KEY
es la ruta a la clave SSH privada en el host ATS de OmniLab.
El comando prueba la conexión con el host remoto antes de iniciar el ATS de OmniLab.
Si se muestra un mensaje de advertencia, como The specified --remote_virtual_devices and --remote_ssh_key are invalid.
, en la consola, debes verificar la configuración de SSH.
Para evitar conflictos de recursos, un host de ATS de OmniLab se puede conectar como máximo a un host remoto. Varios hosts de ATS de OmniLab no se pueden conectar a un host remoto al mismo tiempo.
Ejecuta una prueba con dispositivos virtuales
En esta sección, se describen los pasos para ejecutar una prueba en dispositivos virtuales locales o remotos.
Elegir dispositivos
En la lista de dispositivos, OmniLab ATS muestra dispositivos virtuales como marcadores de posición en lugar de sus números de serie reales. Los marcadores de posición se muestran en el formato HOSTNAME:local-virtual-device-ID para dispositivos virtuales locales y remote-virtual-ADDRESS-ID para dispositivos virtuales remotos. Los estados son Disponible o Asignado. Un marcador de posición en el estado Disponible indica que el dispositivo virtual no se está ejecutando y se puede asignar para la prueba.
Figura 1: Cómo seleccionar dispositivos virtuales
Cómo agregar acciones del dispositivo
Si seleccionas al menos un dispositivo virtual, la acción del dispositivo asociada debería añadirse a la lista automáticamente. La acción consiste en los parámetros de TradeFed y los recursos de prueba necesarios para crear dispositivos virtuales.
Figura 2: Acciones del dispositivo para dispositivos virtuales locales
Figura 3: Acciones del dispositivo para dispositivos virtuales remotos
Establece recursos de prueba
Los dispositivos virtuales de Cuttlefish requieren tres recursos de prueba: las herramientas de la máquina virtual, las imágenes y Acloud.
En una compilación típica de Cuttlefish (por ejemplo, aosp_cf_x86_64_phone
en ci.android.com), las herramientas de la máquina virtual se empaquetan en cvd-host_package.tar.gz
y las imágenes están en aosp_cf_x86_64_phone-img-*.zip
. El objeto binario de Acloud está integrado en la ATS de OmniLab y es compatible con todas las versiones de Cuttlefish. La URL de descarga predeterminada del binario de Acloud solo se debe cambiar para depurar.
Figura 4: Recursos de prueba para dispositivos virtuales
Cómo ver las ejecuciones de prueba
Los registros del dispositivo, incluidos kernel.log
, host_log.txt
y launcher.log
, se recopilan en la carpeta del archivo de salida. Haz clic en Ver archivos de salida para verlos.
Figura 5: Resultados de la ejecución de prueba