Aprovisionamiento de dispositivos de prueba

Para los dispositivos que ejecutan Android 6 o Android 7, puede probar el aprovisionamiento de dispositivos mediante el arnés de prueba de Android Enterprise (AE), que es un conjunto de pruebas para validar la compatibilidad empresarial de los dispositivos Android. El arnés incluye aplicaciones de soporte, casos de prueba, archivos de configuración y un ejecutor de pruebas ( afw-test-tradefed ) creado en cts-tradefed . Antes de configurar el arnés de prueba AE, asegúrese de completar el aprovisionamiento para la administración del dispositivo .

Para dispositivos con Android 8 o superior, el uso del arnés de prueba AE está obsoleto .

Configuración de un entorno de desarrollo

El entorno de desarrollo para el arnés de prueba AE es similar al sistema operativo Android. Siga los pasos en Requisitos para configurar una máquina de desarrollo.

Descargando código fuente

Descargue el código fuente de AE ​​Test Harness siguiendo los pasos de Descarga del código fuente . El código fuente de AE ​​Test Harness se encuentra en el proyecto ./test/AfwTestHarness . El nombre de la rama determina la versión de AE ​​Test Harness para descargar (cada plataforma Android tiene una versión separada de AE ​​Test Harness). Por ejemplo, el nombre de la rama para Android 7.0 Nougat es afw-test-harness-nougat-dev . Para inicializar el repositorio y descargar el código fuente de esta rama, use los siguientes comandos:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b afw-test-harness-nougat-dev
repo sync -j24

Para consultar el código fuente de una versión diferente, especifique la rama con la etiqueta correspondiente. Las sucursales disponibles incluyen:

Nombre de la sucursal Plataforma Android compatible
afw-test-harness-nougat-dev Android 7.0
afw-prueba-arnés-2.1 Android 7.0
afw-test-arnés-marshmallow-dev androide 6.0
afw-prueba-arnés-1.5 androide 6.0

Otros proyectos de dependencia necesarios para construir el arnés también se descargan con el código fuente.

Visualización en Android Studio

Para ver y editar el código fuente en Android Studio:

  1. Ejecute los siguientes comandos
    make idegen
    development/tools/idegen/idegen.sh
    
  2. En Android Studio, abra android.ipr .

El código fuente de AE ​​Test Harness está en test/AfwTestHarness .

Configuración del arnés de prueba AE

Puede personalizar el arnés configurando test/AfwTestHarness/afw-test.props . Para ejecutar el arnés con éxito, complete los siguientes pasos:

  1. Configure la red Wi-Fi en afw-test.props con las siguientes propiedades:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. Obtenga al menos una cuenta de un dominio que esté vinculado a Test DPC como su controlador de política de dispositivos. Especifique los detalles en afw-test.props con las siguientes propiedades:
    work_account_username
    work_account_password
    

    El arnés de prueba de AE ​​usa Test DPC para probar los flujos de aprovisionamiento, por lo que las cuentas deben vincularse a Test DPC para ejecutar el arnés de prueba.

Construyendo el arnés de prueba AE

Inicialice la configuración de compilación usando:

source build/envsetup.sh
lunch

Seleccione un tipo de dispositivo y presione Entrar .

Construye el arnés usando:

make afw-test-harness -j32

Esto crea un directorio ( out/host/linux-x86/afw-th/android-cts ) con todos los binarios, archivos de configuración y herramientas necesarios para ejecutar el arnés de prueba. Este directorio también está comprimido en un archivo ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) para su distribución.

Ejecución del arnés de prueba AE

Utilice los siguientes pasos para ejecutar el arnés de prueba AE:

  1. En su entorno de compilación, inicie el corredor de prueba usando:
    afw-test-tradefed
    
    Esto inicia la consola cts-tf , carga planes de prueba, casos de prueba y afw-test.props desde out/host/linux-x86/afw-th/android-cts .
  2. Desde la carpeta descomprimida de android-afw-test-harness.zip , inicie el corredor de prueba usando:
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    Esto carga planes de prueba, casos de prueba y afw-test.props del directorio android-cts . Asegúrese ./android‐cts/repository/testcases/afw-test.props tenga la cuenta de trabajo y la configuración de Wi-Fi.
  3. Ejecute un plan de prueba. Cada plan de prueba es un archivo XML que contiene un conjunto de paquetes de prueba del directorio de paquetes de prueba AfwTestHarness/tests . Los planes comunes incluyen:
    • afw-userdebug-build . Contiene todos los paquetes de prueba que requieren una compilación de depuración de usuario.
    • afw-user-build . Se ejecuta en una compilación de usuario, pero requiere que el dispositivo de prueba se configure correctamente, lo que incluye completar la configuración inicial y habilitar la depuración de USB.

    Para ejecutar el plan de prueba afw-userdebug-build , use:
    cts-tf> run cts --plan afw-userdebug-build
    
    Para ver todos los planes de prueba, use el comando list plans . Para ver las definiciones de los planes, consulte out/host/linux-x86/afw-th/android-cts/repository/plans .
  4. Ejecute un paquete de prueba. Para ejecutar un solo paquete de prueba, use
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    Para ver todos los paquetes, use el comando list packages . Para obtener más opciones, use el comando run cts --help .

Depuración del arnés de prueba AE

Ejecute todos los comandos en la consola afw-test-tradefed ( cts-tf ), que puede iniciar ejecutando afw-test-tradefed .

  • Muestre más información con los indicadores -l INFO o -l DEBUG . Ejemplo:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • Ejecute el arnés de prueba en un dispositivo específico con el indicador -s . Ejemplo:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • Ejecute el arnés de prueba en todos los dispositivos conectados con el indicador --all-devices . Ejemplo:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • Vea las ejecuciones en ejecución actuales usando list invocations o li .
  • Vea el resumen de las ejecuciones de pruebas anteriores utilizando los list results o lr .
  • Ver otros comandos de list usando help list .
  • Supervise logcat en tiempo real con filtro usando afwtest , luego abra otra terminal e inicie logcat usando: adb logcat | grep afwtest . Después de completar una prueba:
    • Ver registros en out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time . El logcat completo del dispositivo y el registro del host (registros afw-test-tradefed ) se guardan en archivos zip separados.
    • Encuentre información relevante buscando afwtest en el logcat del dispositivo. Ejemplo: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • Para ver el registro completo de afw-test-tradefed, use: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • Un paquete de prueba automatiza un flujo de aprovisionamiento empresarial al pasar por las páginas de la interfaz de usuario y registrar un registro de navegación en el archivo logcat del dispositivo para cada página. Ejemplo: afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    Las páginas de la interfaz de usuario para el paquete de prueba com.android.afwtest.NfcProvisioning incluyen:
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • Si una prueba falló durante el proceso de aprovisionamiento, logcat contiene un error similar a:
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    Esto generalmente se debe a errores en una página de interfaz de usuario anterior o la página que no se pudo cargar, así que intente encontrar otros mensajes de error en logcat antes de este error , luego intente reproducirlo manualmente siguiendo el flujo de aprovisionamiento.
  • Si un paquete de prueba falla:
    • Se guarda una captura de pantalla en out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time con la siguiente sintaxis: screenshot-test_ test_class_full_name _ test_case_name - random_number .png . Esta información también se registra en el registro del host.
    • Un informe de error se guarda en out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time como: bug- test_class_full_name _ test_case_name - random_number .zip .
  • Después de ejecutar todos los paquetes de prueba, se toma una captura de pantalla y se guarda en out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time como: screenshot- random_number .png . Esta información también se registra en el registro del host.

Preguntas más frecuentes

¿Puedo ejecutar el plan de prueba afw-userdebug-build en un dispositivo flasheado con la compilación del usuario?

No. Los paquetes de prueba en el afw-userdebug-build restablecen de fábrica el dispositivo de prueba antes de ejecutar el flujo de prueba real y requieren que la depuración de adb se habilite automáticamente. Con una compilación de usuario, la depuración de adb solo se puede habilitar cambiando manualmente la configuración en las opciones de desarrollador.

¿Puedo ejecutar el plan de prueba afw-user-build en un dispositivo flasheado con la compilación de depuración de usuario?

Sí, pero le recomendamos que ejecute este plan de prueba en una compilación de usuario.

A veces, mi prueba falla porque la carga de la interfaz de usuario lleva demasiado tiempo. ¿Cómo puedo arreglar esto?

Configure el parámetro timeout_size en ./android-cts/repository/testcases/afw-test.props . Los ajustes válidos son: S, M, L, XL, XXL.

El paquete de prueba com.android.afwtest.NfcProvisioning (o SuwDoProvisioning ) falla en mi dispositivo porque la configuración inicial instalada muestra una interfaz de usuario personalizada (como Términos y condiciones) una vez que se completa el aprovisionamiento. ¿Cómo puedo omitir esta interfaz de usuario personalizada?

Debe haber una interfaz de usuario mínima después del proceso de aprovisionamiento. El arnés de prueba omitirá automáticamente dicha interfaz de usuario si la interfaz de usuario tiene un botón que tiene texto significativo o una descripción de contenido que contiene cualquiera de las siguientes palabras: Omitir, Finalizar, Listo, Aceptar, Aceptar, Siguiente, Continuar o Continuar. Alternativamente, puede definir un botón en afw-test.props para configurar el arnés de prueba para omitir su interfaz de usuario. Ejemplo:

oem_widgets=your_btn
your_btn.text=your_customized_text
your_btn.package=your_package
your_btn.action=click

Para definir varios widgets, sepárelos con comas.

El paquete de prueba com.android.afwtest.NfcProvisioning (o SuwDoProvisioning ) falló y la última pantalla de la interfaz de usuario es "Verificar su cuenta". ¿Por qué sucede esto y cómo puedo recuperar el dispositivo de prueba?

Esta falla ocurre porque el paquete de prueba anterior no pudo borrar la protección de restablecimiento de fábrica al final de la prueba. Debe ingresar manualmente la cuenta para desbloquear el dispositivo.

Mi dispositivo necesita más tiempo para restablecer los valores de fábrica. ¿Puedo extender el tiempo de espera del restablecimiento de fábrica?

Sí. Configure la configuración factory_reset_timeout_min en afw-test.props . Los ajustes válidos están en minutos; puede configurar cualquier número de minutos que funcione con su dispositivo.