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 comandorepo init
.
- Si una máquina tiene un tamaño limitado, agregue
- 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
- Utilice
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 devolveruserdebug
. - Si
ro.build.type
no está disponible, una compilación de depuración de usuario permite ejecutar adb Shell 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 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) usandoexport 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 disponiblesLa 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.