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 #
(итерации теста).