5G 测试

对于搭载 Android 11 或更高版本的设备,Android 通讯测试套件 (ACTS) 支持适用于单设备和多设备环境的核心 5G 非独立组网 (NSA) 用例。本页面将介绍 ACTS 如何检测和确定设备是否已连接到 5G NSA 网络,并简要介绍测试路径结构

检测

从 Android 11 开始,Android 框架包含用于检测 5G 网络的 API。如需了解详情,请参阅 5G 检测

Android 脚本层 (SL4A) 通过监听来自 PhoneStateListenerLISTEN_DISPLAY_INFO_CHANGED 事件并替换 onDisplayInfoChanged() 方法来支持 5G 检测功能。SL4A 使用以下值来区分 NSA(非独立)、mmWave(毫米波)波和 SA(独立) 5G 连接类型:

连接类型
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

ACTS 测试使用 is_current_network_5g_nsa() 方法来确定设备是否已连接到 5G NSA 网络

测试路径和测试结构

ACTS 中的所有电话测试(1400 多项)位于 tel 目录中。5G 测试位于 tools/test/connectivity/acts\_tests/tests/google/nr/ 目录中(nr 代表新的无线装置)。随着 5G 无线接入技术 (RAT) 的采用,我们在现实网络环境中将 5G 测试与 4G、3G、2G 和 1x 测试分开,以使 ACTS 测试具有独立性并可调整规模。

下文将介绍 5G 测试的测试类别。

  • Nsa5gActivationTest:验证单个设备是否可在各种状态下正确连接到 5G NSA。

    test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot
    test_5g_nsa_activation_from_3g
    
  • Nsa5gVoiceTest:在多个设备间验证语音通话功能。

    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:验证数据功能,例如浏览、数据延迟和按流量计费。

    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:验证多个设备间的短信收发功能。

    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:验证多个设备间的彩信收发功能。

    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:验证连接到 5G NSA 的设备的 Wi-Fi 网络共享功能。

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

测试输出示例

若要确认设备是否已连接到 5G NSA,请检查 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]

问题排查

在故障发生期间,若要在不运行 ACTS 测试的情况下将 API 响应分类,请使用以下命令:

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