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:
- Ejecute los siguientes comandos
make idegen
development/tools/idegen/idegen.sh
- 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:
- 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)
- 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:
- En su entorno de compilación, inicie el corredor de prueba usando:
afw-test-tradefed
Esto inicia la consolacts-tf
, carga planes de prueba, casos de prueba yafw-test.props
desdeout/host/linux-x86/afw-th/android-cts
. - 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 yafw-test.props
del directorioandroid-cts
. Asegúrese./android‐cts/repository/testcases/afw-test.props
tenga la cuenta de trabajo y la configuración de Wi-Fi. - 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 pruebaafw-userdebug-build
, use:cts-tf> run cts --plan afw-userdebug-build
Para ver todos los planes de prueba, use el comandolist plans
. Para ver las definiciones de los planes, consulteout/host/linux-x86/afw-th/android-cts/repository/plans
. -
- 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 comandolist packages
. Para obtener más opciones, use el comandorun 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
oli
. - Vea el resumen de las ejecuciones de pruebas anteriores utilizando los
list results
olr
. - Ver otros comandos de
list
usandohelp 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 (registrosafw-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
- Ver registros en
- 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 pruebacom.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
.
- Se guarda una captura de pantalla en
- 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.