Pruebas de 5G

En dispositivos que ejecutan Android 11 o versiones posteriores, el Android Comms Test Suite (ACTS) admite casos de uso principales de 5G NSA para entornos de un solo dispositivo y de varios dispositivos. En esta página, se explica cómo ACTS detecta y garantiza que un dispositivo esté conectado a una red NSA 5G y te brinda una descripción general de la estructura de la ruta de prueba.

Detección

A partir de Android 11, el framework de Android incluye APIs para detectar 5G. Para obtener más detalles, consulta Detección de 5G.

La capa de secuencias de comandos para Android (SL4A) admite la detección de 5G a través de la detección de eventos LISTEN_DISPLAY_INFO_CHANGED desde PhoneStateListener y anula el método onDisplayInfoChanged(). SL4A usa los siguientes valores para distinguir entre los tipos de conexión NSA (no autónoma), mmWave (onda milimétrica) y SA (autónoma) para 5G:

Tipo de conexión Valores
5G NSA TelephonyManager.getDataNetworkType() = LTE

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

5G mmWave TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE
5G SA TelephonyManager.getDataNetworkType() = NR

TelephonyDisplayInfo.getNetworkType() = NR

Las pruebas de ACTS usan el método is_current_network_5g_nsa() para garantizar que el dispositivo esté conectado a una red 5G NSA.

Rutas de prueba y estructura de prueba

Todas las pruebas de telefonía (más de 1,400) en ACTS forman parte del directorio tel. Las pruebas de 5G se encuentran en el directorio tools/test/connectivity/acts\_tests/tests/google/nr/ (nr significa radio nueva). Con la introducción de la tecnología de acceso por radio (RAT) 5G, las pruebas 5G se separan de las de 4G, 3G, 2G y 1x para entornos de red en vivo, lo que permite que las pruebas de ACTS sean escalables e independientes.

A continuación, se describen las clases de prueba para las pruebas de 5G.

  • Nsa5gActivationTest: Verifica si un solo dispositivo se conecta correctamente a la 5G NSA desde varios estados.

    test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot
    test_5g_nsa_activation_from_3g
    
  • Nsa5gVoiceTest: Verifica la funcionalidad de las llamadas de voz entre varios dispositivos.

    test_5g_nsa_call_volte_to_volte test_5g_nsa_call_volte_to_3g
    test_5g_nsa_call_volte_mo_hold_unhold
    test_5g_nsa_call_mo_volte_in_active_data_transfer
    test_5g_nsa_volte_in_call_wifi_toggling
    
  • Nsa5gDataTest: Verifica la funcionalidad de los datos, como la navegación, la detención de datos y la medición.

    test_5g_nsa_data_browsing test_5g_nsa_data_stall_recovery
    test_5g_nsa_metered_cellular test_5g_nsa_metered_airplane
    test_5g_nsa_metered_wifi
    
  • Nsa5gSmsTest: Verifica el envío y la recepción de mensajes SMS entre varios dispositivos.

    test_5g_nsa_sms_mo_mt test_5g_nsa_sms_mo_mt_volte
    test_5g_nsa_sms_mo_mt_in_call_volte test_5g_nsa_sms_mo_mt_iwlan
    test_5g_nsa_sms_mo_mt_in_call_iwlan
    
  • Nsa5gMmsTest: Verifica el envío y la recepción de mensajes MMS entre varios dispositivos.

    test_5g_nsa_mms_mo_mt test_5g_nsa_mms_mo_mt_in_call_volte
    test_5g_nsa_mms_mo_mt_iwlan_apm_off test_5g_nsa_mms_mo_mt_in_call_iwlan
    test_5g_nsa_mms_mo_mt_in_call_volte_wifi
    
  • Nsa5gTetheringTest: Verifica la conexión compartida por Wi-Fi en un dispositivo conectado a 5G NSA.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Resultado de la prueba de muestra

Para confirmar que un dispositivo utiliza la NSA 5G, busca los siguientes mensajes de registro en test_run_info.txt.

INFO [AndroidDevice|<SERIAL_ID>] Current ModePref for Sub 2 is in
NETWORK_MODE_NR_LTE_GSM_WCDMA [tel_test_utils.py:set_preferred_network_mode_pref:7634]
INFO [AndroidDevice|<SERIAL_ID>] Got expected event {'name': 'DisplayInfoChanged',
'data': {'override': 'NR_NSA', 'network': 'LTE', 'subscriptionId': 2147483647},
'time': 1611094526689} [tel_5g_utils.py:is_current_network_5g_nsa:58]

Solución de problemas

Para clasificar la respuesta de la API sin ejecutar una prueba de ACTS durante una falla, usa los siguientes comandos:

>> python3
>> from acts.controllers.android_device import AndroidDevice; ad = AndroidDevice('<SERIAL_ID>'); a, b = ad.get_droid()
>> a.telephonyStartTrackingDisplayInfoChange()
>> b.start()
>> b.wait_for_event("DisplayInfoChanged", lambda _: True, timeout=30)

{'name': 'DisplayInfoChanged', 'data': 'TelephonyDisplayInfo {network=LTE, override=LTE_CA, 'time': 1586483596907}