El conjunto de pruebas de comunicaciones (ACTS) de Android realiza pruebas automatizadas de pilas de conectividad, como Wi-Fi, Bluetooth y servicios móviles. La herramienta de prueba requiere adb y Python. La herramienta se encuentra en tools/test/connectivity/acts
.
En esta página, se describe cómo ejecutar las pruebas de telefonía básicas 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 de ACTS, debes tener acceso a un repositorio de Android completo y, además, instalar las compilaciones userdebug en los dispositivos que deseas probar.
Descarga un repositorio de Android
Sigue las instrucciones que se indican en Cómo descargar el código fuente para descargar un repositorio de Android en una máquina que tenga una conexión USB a los dispositivos que quieres probar.
- AOSP es una base de código multigigabytes que sigue creciendo. Ajusta tus expectativas en cuanto a los tiempos de descarga según corresponda.
- Si una máquina tiene restricciones de tamaño, agrega
--depth=1
al comandorepo init
.
- Si una máquina tiene restricciones de tamaño, agrega
- Para obtener actualizaciones futuras sobre las herramientas de ACTS, ve al directorio raíz de Android:
- Usa
repo sync tools/test/connectivity
- Y
repo sync external/sl4a
- Usa
Cómo verificar compilaciones de userdebug en dispositivos
Instala una versión userdebug de Android en tus dispositivos de prueba.
- Compila el repositorio según las instrucciones que se indican en Cómo compilar para Android.
- Escribe el dispositivo en la memoria flash como se describe en Cómo escribir en la memoria flash de un dispositivo.
- El comando
adb shell getprop ro.build.type
debería mostraruserdebug
. - Si
ro.build.type
no está disponible, una compilación userdebug permite ejecutar el shell de adb como raíz (terminal#
).
- El comando
Cómo compilar e instalar SL4A
Para compilar e instalar la capa de secuencias de comandos para Android (SL4A), sigue las instrucciones de la Capa de secuencias de comandos para Android. La sección Cómo agregar compilaciones de SL4A a compilaciones de Android de forma predeterminada es opcional.
Después de compilar ANS4, el último mensaje de registro contendrá la ubicación del archivo sl4a.apk
, que debes instalar en TODOS los dispositivos. Este es un ejemplo de un mensaje de registro:
Copy: out/target/path/to/sl4a.apk
Configura dispositivos para realizar pruebas
Configura los dispositivos con estos requisitos de compilación o herramienta de ACTS:
Si las claves del proveedor de ADB no están disponibles, presiona la ventana emergente Confiar en esta computadora en el DUT cuando aparezca. Si las claves de proveedor de ADB están disponibles, haz lo siguiente:
- Las claves y los controladores del proveedor de ADB deben ser exclusivos del DUT.
- Para habilitar siempre la depuración por USB, las claves del proveedor de ADB de tu árbol de fuentes deben agregarse a
~/.bashrc
(o equivalente) conexport ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
, donde/path/to/directory
es la ruta de acceso completamente calificada en el host. Para solucionar problemas de ADB, consulta Cómo ejecutar apps en un dispositivo de hardware.
Permitir la depuración por USB: Cuando están instalados los controladores adb, estos pueden activar un mensaje en el dispositivo para permitir la depuración por USB.
Instalar
sl4a.apk
con$ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk
Asegúrate de que los teléfonos usen una conexión USB 2.0 al servidor de prueba.
Estas pruebas dependen de redes móviles activas, por lo que debes colocar las tarjetas SIM en los teléfonos y mantenerlos en un área que tenga un buen servicio de telefonía.
Agrega todas las tarjetas SIM a un archivo JSON como se describe en Cómo escribir un archivo de configuración.
Configura el entorno
Antes de configurar el entorno, verifica que Python 3.4+ esté instalado.
Ejecuta:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler
Instala ACTS
Ejecuta:
cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -
Para verificar la instalación, ejecuta act.py -h
, que imprime una lista de comandos disponibles.
Escribe un archivo de configuración
Para ejecutar pruebas, debes crear un archivo con información de configuración. Este es un archivo .config
de ejemplo. Hay un archivo similar disponible en el repositorio de Android, en tools/test/connectivity/acts/framework/sample_config.json
. Reemplaza XXXXXXX
por números de serie del dispositivo a fin de proporcionar la información mínima que necesita ACTS 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"
}
Usa las claves de la tabla para configurar los parámetros de prueba. Consulta Opciones de configuración adicionales para obtener más opciones.
Clave | Valor |
---|---|
_description
|
Comenta el contenido de todo el archivo de configuración |
testbed
|
Especificación de un entorno en el que se pueden ejecutar las pruebas |
(pruebas) _description
|
Hacer comentarios en cada grupo de pruebas, ya que el ACTS puede atacar a grupos de pruebas individuales |
(pruebas) name
|
Nombre del testbed para llamar desde la línea de comandos |
(pruebas) AndroidDevice
|
Lista de dispositivos específicos a los que se orienta 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, se ejecutará en el primero. |
(testbed)(AndroidDevice) serial
|
Número de serie del dispositivo (impreso desde adb devices )
|
(testbed)(AndroidDevice) adb_logcat_param
|
Parámetros que se pasan cuando se llama a 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 en el que se enumeran 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"
},
...
}
Puedes obtener el número de teléfono del dispositivo en Sistema > Acerca del teléfono.
Por lo general, el ID de la tarjeta SIM se imprime 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
y, luego, se busca CARRIER_
.
Parámetros de configuración adicionales
El archivo entries.py
, ubicado en tools/test/connectivity/acts/framework/acts/config/entries.py
en el repositorio de Android, incluye definiciones para las opciones de configuración de la línea de comandos principales.
También puedes encontrar parámetros específicos de la prueba en el código buscando self.user_params.get
.
Cómo ejecutar pruebas
Ejecuta 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
. En este ejemplo, se 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
Cómo ejecutar varias pruebas
Para ejecutar casos de prueba específicos en varios archivos, crea un archivo de prueba y pásalo con la marca -tf
, como se muestra en el paquete de pruebas de regresión de ejemplo:
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
En este comando de ejemplo, se supone que el archivo se llama regression_suite.
act.py -c minimum.config -tf regression_suite
Cómo ejecutar pruebas varias veces
Para ejecutar un caso de prueba (-tc
) o un archivo de prueba (-tf
) varias veces, agrega -ti
#
(iteraciones de prueba) al comando.