Pruebas de telefonía ACTS

Android Comms Test Suite (ACTS) realiza pruebas automatizadas de pilas de conectividad, como Wi-Fi, Bluetooth y servicios móviles. 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 userdebug en los dispositivos que desea probar.

Descargando 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 con los dispositivos que desea probar.

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

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

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

  • Compile el repositorio siguiendo las instrucciones de Compilación de Android .
  • Actualice el dispositivo como se describe en Flashear 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 adb Shell 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 Agregar 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. A continuación se muestra un ejemplo de un mensaje de registro:

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

Configurar dispositivos para probar

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

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

    • Las claves y los controladores del proveedor de ADB deben ser exclusivos del DUT.
    • Para habilitar siempre la depuración USB, las claves del proveedor de ADB en su árbol de fuentes deben agregarse a ~/.bashrc (o equivalente) usando export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys donde está /path/to/directory su ruta totalmente calificada 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 activas, así que coloque tarjetas SIM en los teléfonos y manténgalos en un área que tenga buen servicio celular.

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

Configurando el ambiente

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

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 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 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 claves 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 Comente sobre cada banco de pruebas, ya que ACTS puede apuntar a bancos de pruebas individuales.
name (banco de pruebas) Nombre del banco de pruebas para llamar desde la línea de comando
(banco de pruebas) AndroidDevice Lista de dispositivos específicos a los que se dirige 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 pruebas) (AndroidDevice) serial Número de serie del dispositivo (impreso desde adb devices )
(banco de pruebas) (AndroidDevice) 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 la identificación 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 extraer el número de teléfono del dispositivo en Sistema > Acerca del teléfono . La ID de la tarjeta SIM generalmente está impresa en la tarjeta SIM o está disponible en el dispositivo en Sistema > Acerca del teléfono > Estado de 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 .

Ejecución de pruebas

Ejecute pruebas desde la línea de comando 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 utiliza 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

Ejecutando 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 ejemplo del conjunto de pruebas de regresión que aparece 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 supone 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.