Pruebas de telefonía ACTS

Android Comms Test Suite (ACTS) realiza pruebas automatizadas de pilas de conectividad, como Wi-Fi, Bluetooth y servicios celulares. La herramienta de prueba requiere adb . y Python, y se puede encontrar en tools/test/connectivity/acts .

Esta página describe cómo ejecutar las pruebas de telefonía básica disponibles en el Proyecto de código abierto de Android (AOSP) para un usuario con dos teléfonos.

requisitos previos

Para ejecutar pruebas de telefonía ACTS, debe tener acceso a un repositorio completo de Android e instalar compilaciones de depuración de usuarios en los dispositivos que desea probar.

Descargar un repositorio de Android

Siga las instrucciones en Descarga de la fuente para descargar un repositorio de Android en una máquina que tenga una conexión USB a los dispositivos que desea probar.

  • AOSP es una base de código de varios gigabytes que continúa creciendo. Ajuste sus expectativas de tiempos de descarga en consecuencia.
    • Si una máquina tiene restricciones de tamaño, agregue --depth=1 al comando repo init .
  • Para obtener actualizaciones futuras sobre las herramientas de ACTS, vaya al directorio raíz de Android:
    • Usar repo sync tools/test/connectivity
    • Y repo sync external/sl4a

Verificación de compilaciones de depuración de usuarios en dispositivos

Instale una versión de depuración de usuario de Android en sus dispositivos de prueba.

  • Cree el repositorio siguiendo las instrucciones de Creación de Android .
  • Actualice el dispositivo como se describe en Actualizar un dispositivo .
    • El comando adb shell getprop ro.build.type debería devolver userdebug .
    • Si ro.build.type no está disponible, una compilación de depuración de usuario permite ejecutar el shell adb como root (terminal # ).

Construyendo e instalando SL4A

Para compilar e instalar Scripting Layer para Android (SL4A), siga las instrucciones en Scripting Layer para Android . La sección Adición de compilaciones SL4A a compilaciones de Android de forma predeterminada es opcional.

Después de compilar SLA4, el último mensaje de registro contiene la ubicación del archivo sl4a.apk , que debe instalar en TODOS los dispositivos. Este es un ejemplo de un mensaje de registro:

Copy: out/target/path/to/sl4a.apk

Configuración de dispositivos para probar

Configure los dispositivos utilizando estos requisitos de compilación/herramienta de ACTS:

  • Si las claves del proveedor ADB no están disponibles, toque la ventana emergente Confiar en esta computadora en el DUT cuando aparezca. Si las claves de proveedor ADB están disponibles:

    • Las claves y los controladores del proveedor ADB deben ser únicos para el DUT.
    • Para habilitar siempre la depuración de USB, las claves del proveedor ADB en su árbol de fuentes deben agregarse a ~/.bashrc (o equivalente) usando export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys where /path/to/directory is su ruta completa en el host. Para solucionar problemas de ADB, consulte Ejecutar aplicaciones en un dispositivo de hardware .
  • Permitir la depuración de USB: cuando se instalan los controladores adb, los dispositivos adb pueden activar un mensaje en el dispositivo para permitir la depuración de USB.

  • Instale sl4a.apk usando $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk

  • Asegúrese de que los teléfonos utilicen una conexión USB 2.0 al servidor de prueba.

  • Estas pruebas dependen de redes celulares vivas, así que coloque tarjetas SIM en los teléfonos y manténgalos en un área que tenga un buen servicio celular.

  • Agregue todas las tarjetas SIM a un archivo .json como se describe en Escribir un archivo de configuración .

Configuración del entorno

Antes de configurar el entorno, verifique que esté instalado Python 3.4+.

Correr:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

Instalación de actos

Correr:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

Para verificar la instalación, ejecute act.py -h , que imprime una lista de los comandos disponibles.

Escribir un archivo de configuración

Para ejecutar pruebas, debe crear un archivo con información de configuración. Aquí hay un archivo .config de ejemplo. Un archivo similar está disponible en el repositorio de Android en tools/test/connectivity/acts/framework/sample_config.json . Reemplace XXXXXXX con los números de serie del dispositivo para proporcionar la información mínima que ACTS necesita para ejecutar una prueba de telefonía.

{
  "_description": "Minimum Telephony Config",
  "testbed":
  [
      {
          "_description": "A testbed listing two AndroidDevices for adb.",
          "name": "ExampleTestBed",
          "AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
                            {"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
      }
  ],
  "logpath": "/path/to/logs",
  "testpaths": "/path/to/android/repo/tools/test/connectivity",
  "sim_conf_file": "/path/to/simcard_list.json"
}

Utilice las teclas de la tabla para configurar los parámetros de prueba. Consulte Opciones de configuración adicionales para obtener más opciones.

Llave Valor
_description Comente el contenido de todo el archivo de configuración
testbed Especificación de un entorno en el que se pueden ejecutar las pruebas
(banco de pruebas) _description Comenta sobre cada banco de pruebas, ya que ACTS puede apuntar a bancos de pruebas individuales
(banco de pruebas) name Nombre del banco de pruebas para llamar desde la línea de comandos
(banco de pruebas) AndroidDevice Lista de dispositivos específicos a los que apunta la prueba
Nota: Puede haber varios dispositivos en la lista. Una prueba que ejecuta teléfonos que se llaman entre sí espera que haya dos dispositivos y falla si hay menos. Si hay dos dispositivos en la lista y la prueba espera solo uno, esa prueba se ejecuta en el primer dispositivo.
(banco de prueba) (dispositivo Android) serial Número de serie del dispositivo (impreso desde adb devices )
(banco de pruebas)(DispositivoAndroid) adb_logcat_param Parámetros que se pasan cuando se llama adb logcat durante la prueba
logpath La ubicación en el servidor de prueba donde se guardan los registros
testpaths La ubicación del código del caso de prueba
sim_conf_file La ubicación del archivo .json que enumera las tarjetas SIM disponibles
La lista de tarjetas SIM incluye el ID de la tarjeta, las capacidades de la tarjeta, el operador y el número de teléfono.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

Puede obtener el número de teléfono del dispositivo en Sistema > Acerca del teléfono . El ID de la tarjeta SIM generalmente está impreso en la tarjeta SIM o está disponible en el dispositivo en Sistema > Acerca del teléfono > Estado de la SIM . La cadena del operador se define en tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py , luego busque CARRIER_ .

Opciones de configuración adicionales

El archivo entries.py ubicado en tools/test/connectivity/acts/framework/acts/config/entries.py en el repositorio de Android tiene definiciones para las principales opciones de configuración de la línea de comandos.

También puede encontrar parámetros específicos de la prueba en el código buscando self.user_params.get .

Ejecutando pruebas

Ejecute pruebas desde la línea de comandos después de escribir el archivo de configuración. Si bien hay muchas opciones, la más simple es usar -c filename.config -tc TestCase:name . Este ejemplo usa un archivo de configuración llamado minimum.config :

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

Una ejecución de prueba exitosa debería tener un mensaje de salida final como este:

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

Ejecución de múltiples pruebas

Para ejecutar casos de prueba específicos en varios archivos, cree un archivo de prueba y páselo con el indicador -tf , como se muestra en el conjunto de pruebas de regresión de ejemplo a continuación.

TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g

TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g

TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g

Este comando de ejemplo asume que el archivo se llama regression_suite.

act.py -c minimum.config -tf regression_suite

Ejecutar pruebas varias veces

Para ejecutar un caso de prueba ( -tc ) o un archivo de prueba ( -tf ) varias veces, agregue -ti # (iteraciones de prueba) al comando.