Tests 5G

Pour les appareils équipés d'Android 11 ou version ultérieure, Android Comms Test Suite (ACTS) prend en charge les principaux cas d'utilisation de la 5G NSA dans les environnements mono et multi-appareils. Cette page explique comment le système ACTS détecte et s'assure qu'un appareil est connecté à un réseau NSA 5G, et présente la structure des chemins de test.

Détection

À partir d'Android 11, le framework Android inclut des API permettant de détecter la 5G. Pour en savoir plus, consultez la section Détection de la 5G.

La couche de script pour Android (SL4A) est compatible avec la détection de la 5G en écoutant les événements LISTEN_DISPLAY_INFO_CHANGED à partir de PhoneStateListener et en remplaçant la méthode onDisplayInfoChanged(). SL4A utilise les valeurs suivantes pour faire la distinction entre les types de connexions NSA (non autonomes), mmWave (ondes millimétriques) et SA (autonomes) pour la 5G:

Type de connexion Valeurs
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

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

Chemins d'accès et structure de test

Tous les tests de téléphonie (plus de 1 400) dans ACTS font partie du répertoire tel. Les tests 5G se trouvent dans le répertoire tools/test/connectivity/acts\_tests/tests/google/nr/ (NR signifie "new radio"). Avec l'introduction de la technologie d'accès radio 5G (RAT), 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.

Vous trouverez ci-dessous la description des 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 de données telles que la navigation, l'arrêt des données et la limitation.

    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 sortie de test

Pour vérifier qu'un appareil est sur la 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 de défaillance, 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}