El paquete de pruebas de comunicaciones de Android
(ACTOS)
realiza pruebas automatizadas de pilas de conectividad, como Wi-Fi, Bluetooth y
servicios de telefonía celular. La herramienta de prueba requiere
adb y Python. El
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 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 e instalar compilaciones de userdebug en los dispositivos que quieras probar.
Descarga un repositorio de Android
Sigue las instrucciones que se indican en Descarga el código fuente para descarga un repositorio de Android en un equipo que tenga conexión USB a la dispositivos que quieres probar.
- AOSP es una base de código multigigabytes que sigue creciendo. Ajusta tus
con las expectativas de los tiempos de descarga.
- Si una máquina tiene restricciones de tamaño, agrega
--depth=1
arepo init
. kubectl.
- Si una máquina tiene restricciones de tamaño, agrega
- Para obtener futuras actualizaciones 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 de Compila Android.
- Escribe el dispositivo en la memoria flash como se describe en
Escribe en la memoria flash 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 escritura de secuencias de comandos para Android (SL4A), sigue las instrucciones en la capa de scripting para Android La sección Cómo agregar compilaciones de SL4A a compilaciones de Android de forma predeterminada es opcional.
Después de compilar el ANS4, el último mensaje de registro contendrá la ubicación del
sl4a.apk
, que debes instalar en TODOS los dispositivos. Aquí hay 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 de proveedor de ADB no están disponibles, presiona la ventana emergente Confiar en esta computadora en el DUT cuando aparece. 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 fuentes
se debe agregar a
~/.bashrc
(o equivalente) conexport ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
en el que/path/to/directory
es tu ruta completamente calificada en el host. Para solucionar problemas de ADB, consulta Ejecuta apps en un dispositivo de hardware.
Permitir la depuración por USB: Cuando se instalan los controladores ADB, estos pueden activar la un mensaje en el dispositivo que permita 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, así que coloca las tarjetas SIM en los teléfonos mantener los teléfonos en un área con buen servicio de telefonía celular.
Agrega todas las tarjetas SIM a un archivo JSON como se describe en Escribe un archivo de configuración.
Configura el entorno
Antes de configurar el entorno, verifica que Python 3.4+ instalada.
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 recursos disponibles
con comandos de SQL sencillos.
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.
por debajo de tools/test/connectivity/acts/framework/sample_config.json
. Reemplazar
XXXXXXX
con números de serie del dispositivo para proporcionar la información mínima que
El ACTS necesita 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 de estado.
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 se ejecuta los teléfonos que se llamen entre sí espera que haya dos dispositivos y falla si son menos. Si hay dos dispositivos en la lista y la prueba espera solo uno, ese la prueba se ejecuta en el primer dispositivo. |
(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
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 indica la SIM disponible
tarjetas
La lista de tarjetas SIM incluye el ID, las capacidades de la tarjeta 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
El ID de la tarjeta SIM generalmente 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 es
definido en
tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py
,
luego, busca CARRIER_
.
Parámetros de configuración adicionales
El archivo entries.py
ubicado en
tools/test/connectivity/acts/framework/acts/config/entries.py
en 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. Mientras estás allí
tienes 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
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 conjunto 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.