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

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

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

Предпосылки

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

Загрузка репозитория 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

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

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

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

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

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

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

    • Ключи и драйверы поставщиков ADB должны быть уникальными для DUT.
    • Чтобы всегда включать отладку по 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

Установка 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 Расположение файла .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 # (тестовые итерации).