ACTS 전화통신 테스트

Android 커뮤니케이션 테스트 도구 모음(ACTS)은 Wi-Fi, 블루투스 및 이동통신 서비스와 같은 연결 스택의 자동 테스트를 실행합니다. 테스트 도구는 adb 및 Python이 필요하며 tools/test/connectivity/acts에서 찾을 수 있습니다.

이 페이지에서는 두 대의 휴대전화가 있는 사용자가 Android 오픈소스 프로젝트(AOSP)에서 사용할 수 있는 기본 전화통신 테스트를 실행하는 방법을 설명합니다.

기본 요건

ACTS 전화통신 테스트를 실행하려면 전체 Android 저장소에 대한 액세스 권한이 있어야 하며 테스트할 기기에 userdebug 빌드를 설치해야 합니다.

Android 저장소 다운로드

소스 다운로드의 안내에 따라 테스트하려는 기기에 USB를 연결한 컴퓨터에 Android 저장소를 다운로드합니다.

  • AOSP는 계속 성장하는 멀티 기가바이트 코드베이스입니다. 이에 맞게 다운로드 예상 시간을 조정하세요.
    • 컴퓨터의 크기가 제한되어 있다면 repo init 명령어에 --depth=1을 추가합니다.
  • ACTS 도구의 향후 업데이트를 보려면 다음과 같이 Android 루트 디렉터리로 이동하세요.
    • repo sync tools/test/connectivity 사용
    • repo sync external/sl4a 사용

기기에서 userdebug 빌드 확인

테스트 기기에 userdebug 버전의 Android를 설치합니다.

  • Android 빌드의 안내에 따라 저장소를 빌드합니다.
  • 기기 플래시에 설명된 대로 기기를 플래시합니다.
    • adb shell getprop ro.build.type 명령어는 userdebug를 반환할 것입니다.
    • ro.build.type을 사용할 수 없다면 userdebug 빌드를 사용하여 adb 셸을 루트(터미널 #)로 실행할 수 있습니다.

SL4A 빌드 및 설치

Android용 스크립팅 레이어(SL4A)를 빌드하고 설치하려면 Android용 스크립팅 레이어의 안내를 따르세요. Android 빌드에 기본으로 SL4A 빌드 추가 섹션은 선택사항입니다.

SL4A 빌드 후 마지막 로그 메시지에는 모든 기기에 설치해야 하는 sl4a.apk 파일의 위치가 포함됩니다. 다음은 로그 메시지의 예입니다.

Copy: out/target/path/to/sl4a.apk

테스트할 기기 구성

다음과 같이 ACTS 빌드/도구 요구사항을 사용하여 기기를 구성합니다.

  • ADB 공급업체 키를 사용할 수 없는 경우 DUT에서 이 컴퓨터를 신뢰함 팝업이 표시되면 이를 탭합니다. ADB 공급업체 키를 사용할 수 있는 경우:

    • ADB 공급업체 키와 드라이버는 DUT에 고유해야 합니다.
    • USB 디버깅을 항상 사용하도록 설정하려면 export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys를 사용하여 소스 트리의 ADB 공급업체 키를 ~/.bashrc(또는 이에 상응하는 대상)에 추가해야 합니다. 여기서 /path/to/directory는 호스트에서 정규화된 경로입니다. ADB 문제 해결은 하드웨어 기기에서 앱 실행을 참고하세요.
  • USB 디버깅 허용: adb 드라이버가 설치되면 adb 기기는 USB 디버깅을 허용할지 묻는 메시지를 기기에 표시할 수 있습니다.

  • $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk를 사용하여 sl4a.apk를 설치합니다.

  • 휴대전화에서 테스트 서버에 USB 2.0 연결을 사용하는지 확인합니다.

  • 이 테스트는 실제 이동통신 네트워크에 따라 다르므로 SIM 카드를 휴대전화에 넣고 휴대전화를 이동통신 서비스가 양호한 지역에 두도록 합니다.

  • 구성 파일 작성에 설명된 대로 모든 SIM 카드를 .json 파일에 추가합니다.

환경 설정

환경을 설정하기 전에 Python 3.4 이상이 설치되어 있는지 확인합니다.

다음을 실행합니다.

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

ACTS 설치

다음을 실행합니다.

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

설치를 확인하려면 act.py -h를 실행하여 사용 가능한 명령어 목록을 인쇄합니다.

구성 파일 작성

테스트를 실행하려면 구성 정보가 포함된 파일을 만들어야 합니다. 다음은 .config 파일의 예입니다. Android 저장소의 tools/test/connectivity/acts/framework/sample_config.json에서 비슷한 파일을 사용할 수 있습니다. XXXXXXX를 기기 일련번호로 대체하여 ACTS에서 전화통신 테스트를 실행하는 데 필요한 최소 정보를 제공합니다.

{
  "_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"
}

표의 키를 사용하여 테스트 매개변수를 구성합니다. 추가 옵션은 추가 구성 옵션을 참고하세요.

_description 전체 구성 파일의 콘텐츠에 관한 설명
testbed 테스트를 실행할 수 있는 환경 사양
(테스트베드) _description 각 테스트베드에 관한 설명(ACTS가 개별 테스트베드를 타겟팅하는 경우)
(테스트베드) name 명령줄에서 호출하는 데 사용할 테스트베드 이름
(테스트베드) AndroidDevice 테스트에서 타겟팅하는 특정 기기 목록
참고: 여러 기기가 나열될 수 있습니다. 서로 휴대전화 통화를 실행하는 테스트는 두 대의 기기가 있다고 예상하며 이보다 기기 수가 적다면 실패합니다. 두 대의 기기가 나열되고 테스트에서 하나만 예상했다면 첫 번째 기기에서 테스트가 실행됩니다.
(테스트베드)(AndroidDevice) serial 기기의 일련번호(adb devices에서 인쇄됨)
(테스트베드)(AndroidDevice) adb_logcat_param 테스트 중 adb logcat이 호출될 때 전달되는 매개변수
logpath 테스트 서버에서 로그가 저장되는 위치
testpaths 테스트 사례 코드의 위치
sim_conf_file 사용 가능한 SIM 카드를 나열한 .json 파일의 위치
SIM 카드의 목록에는 카드 ID, 카드 기능, 이동통신사 및 전화번호가 포함됩니다.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

기기의 시스템 > 휴대전화 정보에서 전화번호를 가져올 수 있습니다. SIM 카드 ID는 일반적으로 SIM 카드에 인쇄되어 있거나 기기의 시스템 > 휴대전화 정보 > SIM 상태에서 확인할 수 있습니다. 이동통신사 문자열은 tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py에 정의되어 있으며 CARRIER_를 검색합니다.

추가 구성 옵션

Android 저장소의 tools/test/connectivity/acts/framework/acts/config/entries.py에 있는 entries.py 파일에는 주요 명령줄 구성 옵션의 정의가 있습니다.

self.user_params.get을 검색하여 코드에서 테스트 관련 매개변수를 찾을 수도 있습니다.

테스트 실행

구성 파일이 작성되었다면 명령줄에서 테스트를 실행합니다. 많은 옵션이 있지만 가장 간단한 방법은 -c filename.config -tc TestCase:name을 사용하는 것입니다. 이 예에서는 minimum.config라는 구성 파일을 사용합니다.

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

테스트 실행이 성공하면 다음과 같은 최종 출력 메시지가 표시됩니다.

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

여러 테스트 실행

여러 파일에서 특정 테스트 사례를 실행하려면 아래 회귀 테스트 도구 모음 예에서와 같이 테스트 파일을 만들고 -tf 플래그를 사용하여 전달합니다.

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

이 명령어 예에서는 파일 이름을 regression_suite.으로 가정합니다.

act.py -c minimum.config -tf regression_suite

테스트를 여러 번 실행

테스트 사례(-tc) 또는 테스트 파일(-tf)을 여러 번 실행하려면 명령어에 -ti #(테스트 반복 횟수)을 추가합니다.