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 comandorepo init
.
- Si una máquina tiene restricciones de tamaño, agregue
- 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
- Usar
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 devolveruserdebug
. - Si
ro.build.type
no está disponible, una compilación de depuración de usuario permite ejecutar el shell adb como root (terminal#
).
- El comando
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) usandoexport 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 disponiblesLa 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.