Esta página describe cómo configurar las pruebas ACTS.
Fuentes de configuración
Android Comms Test Suite (ACTS) tiene tres fuentes principales de configuración:
- La interfaz de línea de comando (CLI)
- El archivo de configuración ACTS
- Variables de entorno
Los valores de estas fuentes se combinan en una única configuración que se utiliza para ejecutar una prueba ACTS. Si los valores se especifican en varias ubicaciones, los valores se sobrescriben según el orden anterior (donde la CLI tiene prioridad).
Una nota sobre las variables de entorno
Tenga cuidado al utilizar variables de entorno para pruebas ACTS. Estos valores son los menos visibles para el usuario y no se recomienda su uso fuera de la estación de trabajo de un desarrollador. Las variables de entorno se desactivan durante las pruebas automatizadas de ACTS para evitar el envenenamiento del entorno.
Variables de configuración requeridas
Cada prueba ACTS requiere que se establezcan las siguientes variables.
Rutas de prueba ACTS
ACTS se ejecuta desde una única ubicación de entrada principal. Como resultado, el corredor desconoce la ubicación de la ruta de prueba.
Establezca la ubicación de la ruta de prueba utilizando la variable de entorno ACTS_TESTPATH
o con el indicador -tp
/ --testpaths
en la línea de comando. El valor puede ser una lista de directorios.
Clases de prueba ACTS
ACTS debe saber qué clases de prueba ejecutar. Puede ser una expresión regular o una lista de nombres de clases de prueba.
Para establecer este valor, use el indicador -tc
/ --test_class
en la línea de comando. Tenga en cuenta que esta bandera también acepta una lista de nombres de clases. Los nombres de las clases deben coincidir con los nombres de los archivos correspondientes; por ejemplo, SampleTest
debe encontrarse en SampleTest.py
.
Ruta de registro de ACTOS
ACTS debe tener una ubicación para escribir registros que no sea STDOUT. ACTS escribe registros de depuración completos que contienen datos que pueden ayudar a determinar por qué fallan algunas pruebas. Para evitar el desorden, ACTS no escribe estos registros en STDOUT.
Para configurar la ruta del registro, use la variable de entorno ACTS_LOGPATH
o el indicador -lp
/ --logpath
en la línea de comando.
Ruta de configuración de ACTS
Para ejecutar la prueba, ACTS debe saber qué banco de pruebas existe. La configuración de ACTS contiene todos los dispositivos en el banco de pruebas y cualquier parámetro de entorno o prueba especial que pueda ser necesario. Establezca este valor en la línea de comando usando -c
/ --config
.
Si hay varios bancos de pruebas dentro de la configuración, ACTS ejecuta las pruebas para cada banco de pruebas. Para ejecutar la prueba únicamente para un único banco de pruebas de la lista, utilice el argumento de línea de comando -tb/--testbed <NAME>
.
Un ejemplo de estación de trabajo local
La mayoría de los usuarios de ACTS desarrollan en una única rama del repositorio de Android y tienen una configuración similar a esta:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'
# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
Si los usuarios de ACTS se ejecutan en varias ramas, a menudo ejecutan ACTS desde el directorio acts/framework
y usan una ruta relativa para ACTS_TESTPATH
:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'
# On cmdline
$ cd ~/android/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
Configurando sus bancos de pruebas
El archivo de configuración ACTS proporciona toda la información necesaria para ejecutar pruebas en dispositivos de hardware:
{
"testbed": {
"my_testbed": {
"my_testbed_value": "value"
},
"another_testbed": {
"AndroidDevice": [
"53R147"
]
}
},
"user_parameter_1": "special environment value",
"user_parameter_2": "other special value"
}
La unidad base de esta configuración es el banco de pruebas. En la configuración de ejemplo anterior, el banco de pruebas my_testbed
se crea con un único valor del banco de pruebas. El segundo banco de pruebas, another_testbed
, tiene una configuración de controlador especial que contiene la información de una lista de dispositivos Android. Estos dispositivos se almacenan en una lista de dispositivos en self.android_devices
. Tenga en cuenta que si un banco de pruebas no especifica un objeto AndroidDevice
, una clase de prueba que espera un objeto AndroidDevice
genera una excepción. Para obtener una lista completa de las configuraciones de controlador compatibles que vienen con ACTS, consulte la lista en /acts/framework/acts/controllers/
.
Todos los demás valores (que no sean valores especiales mencionados en la sección anterior) se almacenan en self.user_params
como un diccionario. Este es un buen lugar para guardar información sobre el entorno o las pruebas, como por ejemplo si los teléfonos están en un entorno de datos medidos o durante cuánto tiempo se deben recopilar datos para una prueba.
Casos especiales para dispositivos Android
Para facilitar el desarrollo cuando desea tener varios dispositivos con diferentes propiedades disponibles, AndroidDevice
tiene algunos casos especiales.
Formato de configuración JSON
Todos los pares clave/valor en el siguiente JSON se configuran en el objeto AndroidDevice
correspondiente. Si la configuración intenta sobrescribir un parámetro definido en el atributo AndroidDevice
, se genera ControllerError
.
"AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
{"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]
Luego, en el script de prueba, puede usar una función de filtro para recuperar el dispositivo correcto y acceder a parámetros adicionales desde el objeto del dispositivo:
def setup_class(self):
self.pub = next(filter(lambda ad: ad.label == 'publisher',
self.android_devices))
self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
self.android_devices))
Parámetro opcional
El siguiente es un parámetro opcional:
-
adb_logcat_param
: una cadena agregada al comandoadb logcat
para recopilar registros de adb. De forma predeterminada, se utilizaadb logcat -v threadtime -b all
. Si se estableceadb_logcat_param
, la sección-b all
se sobrescribe. Por ejemplo, configuraradb_logcat_param
en-b radio
cambia el comando aadb logcat -v threadtime -b radio
.