Dispositivos virtuales en Android Test Station

Android Test Station 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 Android Test Station.

ATS admite dispositivos virtuales en dos modos: local y remoto. En la siguiente tabla, se muestra una comparación de los dos modos.

Dispositivos virtuales locales Dispositivos virtuales remotos
Se ejecuta en hosts trabajadores de ATS Se ejecuta en hosts remotos a los que los hosts de trabajador ATS pueden acceder a través de SSH
Basada en x86 Puede ser x86 o ARM, según la arquitectura del host
Son más fáciles de configurar. Es más complicado de configurar.

Los dispositivos virtuales locales y remotos se pueden habilitar por separado. Para obtener detalles sobre cada modo, consulta:

Configura dispositivos virtuales locales

En esta sección, se describen los pasos para configurar ATS en dispositivos virtuales locales.

Cómo instalar 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 Android Test Station con dispositivos virtuales locales

Antes de iniciar ATS, asegúrate de que todas las instancias de Cuttlefish estén detenidas. ATS inicia y detiene automáticamente los dispositivos virtuales durante el ciclo de prueba, y las instancias de Cuttlefish existentes entran en conflicto con instancias administradas por ATS. Para obtener información detallada 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 ATS puede asignar de manera simultánea. El número predeterminado es 0.

Si el comando falla debido a nodos de dispositivo faltantes, sigue los pasos del mensaje de error para cargar los módulos de kernel. Si la falla continúa, reinicia la máquina.

Configura dispositivos virtuales remotos

En esta sección, se describen los pasos para configurar ATS en dispositivos virtuales remotos.

Cómo instalar dependencias de Cuttlefish

Para instalar dependencias de Cuttlefish, sigue estos pasos.

  1. Instala los paquetes de Debian en el host remoto. Para ello, sigue los pasos que se indican en Cuttlefish > Comenzar.

  2. Para configurar la cantidad máxima de dispositivos virtuales en el host remoto, sigue estos pasos:

    1. Edita /etc/default/cuttlefish-host-resources con privilegio raíz.
    2. Establece num_cvd_accounts en la cantidad máxima de dispositivos virtuales que se permitirán en este host.
    3. Ejecuta sudo systemctl restart cuttlefish-host-resources.
    4. Ejecuta ifconfig y verifica la cantidad de interfaces de cvd-wtap-*.

Crea una cuenta SSH

Debido a que el host de ATS se conecta al host remoto a través de SSH, debes preparar una cuenta SSH en el host remoto. Dado que ATS manipula los archivos del directorio HOME, te recomendamos que crees una cuenta dedicada.

El host de ATS requiere un par de llaves SSH para acceder al host remoto sin una contraseña. En los siguientes pasos, se describe cómo configurar las claves SSH:

  1. Para generar una clave privada y una pública, ejecuta ssh-keygen en el host de ATS.
  2. Sube y agrega la clave pública a ~/.ssh/authorized_keys en el host remoto.

Si tu cuenta SSH es diferente de la que se usa para instalar dependencias de Cuttlefish, ejecuta este comando en el host remoto a fin de permitir que la cuenta SSH inicie Cuttlefish:

sudo usermod -aG kvm,cvdnetwork,render $USER

Inicia la ATS con dispositivos virtuales remotos

Antes de iniciar ATS, asegúrate de que todas las instancias de Cuttlefish estén detenidas. ATS inicia y detiene automáticamente los dispositivos virtuales durante el ciclo de prueba, y las instancias de Cuttlefish existentes entran en conflicto con instancias administradas por ATS. Para obtener información detallada sobre cómo detener instancias de Cuttlefish, consulta Cómo detener Cuttlefish.

Para obtener un mejor rendimiento, te recomendamos configurar el host de ATS y el host remoto en una red de área local.

Para habilitar dispositivos virtuales remotos, ejecuta este comando en el host de ATS:

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 ATS puede asignar de manera simultánea.

KEY es la ruta a la clave SSH privada en el host de ATS.

El comando prueba la conexión con el host remoto antes de iniciar ATS. 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 ATS se puede conectar como máximo a un host remoto. No se pueden conectar varios hosts ATS 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, 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; remote-virtual-ADDRESS-ID para dispositivos virtuales remotos. Los estados son Disponible o Asignado. Un marcador de posición con el estado Available indica que el dispositivo virtual no se está ejecutando y se puede asignar para la prueba.

Seleccionar dispositivos virtuales

Figura 1: Cómo seleccionar dispositivos virtuales

Agregar acciones del dispositivo

Si seleccionas al menos un dispositivo virtual, la acción del dispositivo asociado debería agregarse a la lista automáticamente. La acción consiste en los parámetros necesarios de TradeFed y recursos de prueba para crear dispositivos virtuales.

Acciones del dispositivo virtual local

Figura 2: Acciones del dispositivo para dispositivos virtuales locales

Acciones de dispositivos virtuales remotos

Figura 3: Acciones del dispositivo para dispositivos virtuales remotos

Configura recursos de prueba

Los dispositivos virtuales Cuttlefish requieren tres recursos de prueba: las herramientas de 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 ATS y es compatible con todas las versiones de Cuttlefish. La URL de descarga predeterminada del objeto binario de Acloud solo debe cambiarse con fines de depuración.

Recursos de prueba de dispositivos virtuales

Figura 4: Cómo probar recursos para dispositivos virtuales

Cómo ver las ejecuciones de pruebas

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 View Output Files para verlos.

Resultados de la ejecución de prueba

Figura 5: Resultados de la ejecución de prueba