Configuración de pruebas ACTS

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 comandos (CLI)
  • El archivo de configuración ACTS
  • Variables de entorno

Los valores de estas fuentes se combinan en una sola configuración que se usa 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 usar 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 usando la variable de entorno ACTS_TESTPATH ​​o con el -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. Esto puede ser una expresión regular o una lista de nombres de clase de prueba.

Para establecer este valor, use el -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 clase deben coincidir con sus nombres de archivo correspondientes, por ejemplo, SampleTest debe encontrarse en SampleTest.py .

Ruta de registro de ACTS

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 especial de prueba o entorno 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 solo para un único banco de pruebas en la lista, use 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 sola rama de 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 sucursales, 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/master/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 de 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 solo valor de 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 son valores especiales mencionados en la sección anterior) se almacenan en self.user_params como un diccionario. Este es un buen lugar para almacenar información sobre el entorno o la prueba, como si los teléfonos están en un entorno de datos medidos o cuánto tiempo se deben recopilar datos para una prueba.

Casos especiales para AndroidDevice

Para mayor comodidad de 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 establecen en el objeto AndroidDevice correspondiente. Si la configuración intenta sobrescribir un parámetro definido en el atributo AndroidDevice , se lanza 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 del 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 adjunta al comando adb logcat para recopilar registros de adb. De forma predeterminada, se adb logcat -v threadtime -b all . Si se establece adb_logcat_param , la sección -b all se sobrescribe. Por ejemplo, establecer adb_logcat_param en -b radio cambia el comando a adb logcat -v threadtime -b radio .