Тесты телефонии ACTS

Android Comms Test Suite (ACTS) выполняет автоматическое тестирование стеков подключений, таких как Wi-Fi, Bluetooth и услуги сотовой связи. Для инструмента тестирования требуется adb . и Python, его можно найти в tools/test/connectivity/acts .

На этой странице описано, как запустить базовые тесты телефонии, доступные в Android Open Source Project (AOSP) , для пользователя с двумя телефонами.

Предварительные условия

Чтобы запустить тесты телефонии ACTS, вам необходимо иметь доступ к полному репозиторию Android и установить сборки userdebug на устройствах, которые вы хотите протестировать.

Загрузка репозитория Android

Следуйте инструкциям в разделе «Загрузка исходного кода» , чтобы загрузить репозиторий Android на компьютер, имеющий USB-соединение с устройствами, которые вы хотите протестировать.

  • AOSP — это многогигабайтная кодовая база, которая продолжает расти. Соответственно скорректируйте свои ожидания по времени загрузки.
    • Если размер машины ограничен, добавьте --depth=1 к команде repo init .
  • Чтобы получать будущие обновления инструментов ACTS, перейдите в корневой каталог Android:
    • Используйте repo sync tools/test/connectivity
    • И repo sync external/sl4a

Проверка сборок userdebug на устройствах

Установите пользовательскую версию Android на тестовые устройства.

  • Создайте репозиторий, следуя инструкциям в разделе Сборка Android .
  • Прошейте устройство, как описано в разделе «Прошивка устройства» .
    • Команда adb shell getprop ro.build.type должна возвращать userdebug .
    • Если ro.build.type недоступен, сборка userdebug позволяет запускать оболочку adb от имени пользователя root (терминал # ).

Сборка и установка SL4A

Чтобы создать и установить уровень сценариев для Android (SL4A), следуйте инструкциям в разделе «Уровень сценариев для Android» . Раздел «Добавление сборок SL4A в сборки Android по умолчанию» является необязательным.

После построения SLA4 последнее сообщение журнала содержит расположение файла sl4a.apk , который необходимо установить на ВСЕ устройства. Вот пример сообщения журнала:

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

Настройка устройств для тестирования

Настройте устройства, используя следующие требования к сборке/инструменту ACTS:

  • Если ключи поставщика ADB недоступны, коснитесь всплывающего окна «Доверять этому компьютеру» на тестируемом устройстве, когда оно появится. Если доступны ключи поставщика ADB:

    • Ключи и драйверы поставщика ADB должны быть уникальными для тестируемого устройства.
    • Чтобы всегда включать отладку по USB, ключи поставщика ADB в вашем дереве исходного кода должны быть добавлены в ~/.bashrc (или эквивалент) с помощью export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys где /path/to/directory ваш полный путь на хосте. Информацию об устранении неполадок ADB см. в разделе «Запуск приложений на аппаратном устройстве» .
  • Разрешить отладку по USB. Когда установлены драйверы adb, устройства adb могут вызвать на устройстве запрос на разрешение отладки по USB.

  • Установите sl4a.apk , используя $ adb install -r <ANDROID_ROOT>/path/to/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

Установка АКТС

Бегать:

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 Расположение файла .json со списком доступных SIM-карт.
Список SIM-карт включает в себя идентификатор карты, возможности карты, оператора и номер телефона.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

Вы можете получить номер телефона с устройства в разделе «Система» > «О телефоне» . Идентификатор SIM-карты обычно указан на SIM-карте или доступен на устройстве в разделе «Система» > «О телефоне» > «Состояние SIM» . Строка оператора определена в tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py , затем найдите CARRIER_ .

Дополнительные возможности конфигурации

Файл entries.py , расположенный по tools/test/connectivity/acts/framework/acts/config/entries.py в репозитории Android, содержит определения основных параметров конфигурации командной строки.

Вы также можете найти в коде параметры, специфичные для теста, выполнив поиск 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 # (итерации теста).