El conjunto de pruebas de comunicaciones de Android (ACTS) realiza pruebas automatizadas de pilas de conectividad, como Wi-Fi, Bluetooth y servicios celulares. 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, luego, instalar compilaciones de userdebug en los dispositivos que deseas probar.
Cómo descargar un repositorio de Android
Sigue las instrucciones que se indican en Descarga la fuente para descargar un repositorio de Android en una máquina que tenga una conexión USB a los dispositivos que deseas probar.
- AOSP es una base de código de varios gigabytes que sigue creciendo. Ajusta tus expectativas de 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
Verifica las compilaciones de userdebug en los dispositivos
Instala una versión userdebug de Android en tus dispositivos de prueba.
- Compila el repositorio con las instrucciones que se indican en Cómo compilar Android.
- Escribe el dispositivo 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 de userdebug permite ejecutar la shell de adb como raíz (terminal#
).
- El comando
Compila e instala 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 SLA4, el último mensaje de registro contiene 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
Cómo configurar dispositivos para realizar pruebas
Configura los dispositivos con estos requisitos de compilación o herramientas de ACTS:
Si las claves de 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 de proveedor de ADB en tu árbol de origen deben agregarse a
~/.bashrc
(o un equivalente) conexport ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
, donde/path/to/directory
es tu 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 se instalan los controladores de adb, los dispositivos adb pueden activar un mensaje en el dispositivo para permitir la depuración por USB.
Instala
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 o versiones posteriores 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 los comandos disponibles.
Cómo escribir 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 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"
}
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
|
Hacer comentarios sobre el contenido de todo el archivo de configuración |
testbed
|
Especificación de un entorno en el que se pueden ejecutar las pruebas |
(plataforma de pruebas) _description
|
Haz comentarios en cada plataforma de pruebas, ya que ACTS puede orientarse a plataformas de pruebas individuales. |
(plataforma de pruebas) name
|
Nombre del testbed para llamar desde la línea de comandos |
(plataforma de pruebas) AndroidDevice
|
Es la lista de dispositivos específicos a los que se orienta la prueba. Nota: Se pueden enumerar varios dispositivos. 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, esta 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 las pruebas
|
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
|
Es la ubicación del archivo .json que enumera las tarjetas SIM disponibles.La lista de tarjetas SIM incluye el ID de la tarjeta, sus capacidades, 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 extraer el número de teléfono del dispositivo en Sistema > Acerca del teléfono.
Por lo general, el ID de la tarjeta SIM está impreso en ella 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
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 tiene definiciones para las principales opciones de configuración de la línea de comandos.
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 sencilla 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
Ejecuta 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 ejemplo del conjunto de pruebas de regresió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
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.