Tests 5G

Pour les appareils exécutant Android 11 ou version ultérieure, Android Comms Test Suite (ACTS) prend en charge les principaux cas d'utilisation de la 5G NSA pour les environnements mono-appareils et multi-appareils. Cette page explique comment ACTS détecte et garantit qu'un appareil est connecté à un réseau 5G NSA et vous donne un aperçu de la structure du chemin de test.

Détection

Depuis Android 11, le framework Android inclut des API pour détecter la 5G. Pour plus de détails, voir Détection 5G .

Scripting Layer For Android (SL4A) prend en charge la détection 5G en écoutant les événements LISTEN_DISPLAY_INFO_CHANGED de PhoneStateListener et en remplaçant la méthode onDisplayInfoChanged() . SL4A utilise les valeurs suivantes pour distinguer les types de connexion NSA (non autonome), mmWave (onde millimétrique) et SA (autonome) pour la 5G :

Type de connexion Valeurs
5G NSA TelephonyManager.getDataNetworkType() = LTE

TéléphonieDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

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

TéléphonieDisplayInfo.getNetworkType() = NR

Les tests ACTS utilisent la méthode is_current_network_5g_nsa() pour garantir que l'appareil est connecté à un réseau 5G NSA

Chemins de test et structure de test

Tous les tests de téléphonie (1400+) dans ACTS font partie de l' annuaire tel . Les tests 5G se trouvent dans le répertoire tools/test/connectivity/acts\_tests/tests/google/nr/ (nr signifie nouvelle radio). Avec l'introduction de la technologie d'accès radio (RAT) 5G, les tests 5G sont distincts des tests 4G, 3G, 2G et 1x pour les environnements réseau en direct afin de permettre aux tests ACTS d'être évolutifs et indépendants.

Ce qui suit décrit les classes de test pour les tests 5G.

  • Nsa5gActivationTest : vérifie si un seul appareil se connecte correctement à la 5G NSA à partir de différents états.

    test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot
    test_5g_nsa_activation_from_3g
    
  • Nsa5gVoiceTest : vérifie la fonctionnalité d'appel vocal entre plusieurs appareils.

    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 : vérifie les fonctionnalités des données telles que la navigation, le blocage des données et la mesure.

    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 : vérifie l'envoi et la réception de messages SMS entre plusieurs appareils.

    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 : vérifie l'envoi et la réception de messages MMS entre plusieurs appareils.

    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 : vérifie le partage de connexion Wi-Fi sur un appareil connecté à la 5G NSA.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Exemple de résultat de test

Pour confirmer qu'un appareil est sur 5G NSA, recherchez les messages de journal suivants dans 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]

Dépannage

Pour trier la réponse de l'API sans exécuter de test ACTS en cas d'échec, utilisez les commandes suivantes :

>> 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}