Trade Federation (сокращенно Tradefed или TF) — это среда непрерывного тестирования, предназначенная для запуска тестов на устройствах Android. Например, Tradefed используется для запуска комплекта тестов совместимости (CTS) и комплекта тестов поставщиков (VTS) .
Trade Federation — это Java-приложение, которое запускается на главном компьютере и взаимодействует с одним или несколькими устройствами Android с помощью ddmlib (библиотеки, лежащей в основе DDMS) через adb.
Ниже мы перечислили некоторые основные функции TF, а также несколько примеров использования. Тем не менее, если вы хотите сразу приступить к работе, вы можете сразу перейти на страницу «Начать здесь» .
Функции
- модульная, гибкая, масштабируемая конструкция
- имеет встроенную поддержку запуска множества различных типов тестов Android: инструментарий , uiautomator , собственный/gtest, JUnit на основе хоста и т. д.
- обеспечивает надежность и механизмы восстановления поверх adb
- поддерживает планирование и запуск тестов на нескольких устройствах параллельно
См. раздел «Тестирование через TF» для получения самой актуальной информации о том, как запускать существующие тесты, например, Instrumentation .
Случаи использования
Модульность Trade Federation упрощает внедрение в среды с существующей инфраструктурой сборки, тестирования и отчетности. Ниже мы перечисляем несколько демонстративных случаев использования, в которых tradefed может обеспечить эффективные и масштабируемые методы тестирования.
Во-первых, полезно рассмотреть ландшафт потенциальных вариантов использования с точки зрения вопроса «какие части можно изменить, а какие части статичны?» Например, OEM-производитель устройства может модифицировать структуру, систему и оборудование, но практически не имеет влияния на существующие приложения. С другой стороны, разработчик приложения может модифицировать приложение, но у него мало контроля над большинством аспектов системы или платформы.
В результате сущность в каждом варианте использования будет иметь разные цели тестирования и разные варианты действий в случае набора неудачных тестов. Несмотря на эти различия, Торговая федерация может помочь сделать каждый из своих процессов тестирования эффективным, гибким и масштабируемым.
OEM-устройство
OEM-производитель устройств создает аппаратное обеспечение и часто настраивает систему Android и платформы для хорошей работы на этом оборудовании. OEM-производитель может стремиться достичь этих целей, сохраняя при этом стабильность и производительность на уровне оборудования и системы, а также следя за тем, чтобы изменения инфраструктуры не нарушали совместимость с существующими приложениями.
OEM-производитель может реализовать модуль прошивки устройства, который будет выполняться на этапе целевой настройки жизненного цикла . Этот модуль будет иметь полный контроль над устройством в течение периода его выполнения, что позволит ему потенциально принудительно включить устройство в загрузчик, прошить его, а затем заставить устройство перезагрузиться обратно в режим пользовательского пространства. В сочетании с модулем для подключения к системе непрерывной сборки это позволит OEM-производителям запускать тесты на своих устройствах по мере внесения изменений в прошивку системного уровня и платформы уровня Java.
Как только устройство будет полностью загружено, OEM-производитель сможет использовать существующие тесты на основе JUnit или написать новые для проверки интересующей функциональности. Наконец, они могли бы написать один или несколько модулей отчетности о результатах, которые будут связаны с существующими репозиториями результатов тестов или сообщать о результатах напрямую (например, по электронной почте ).
Разработчик приложения
Разработчик приложений создает приложение, которое должно хорошо работать на различных версиях платформ и различных устройствах. Если проблема возникает на конкретной версии платформы и/или устройстве, единственное решение — добавить обходной путь и двигаться дальше. Для более крупных разработчиков процесс тестирования может быть включен в непрерывную последовательность сборки. Для небольших разработчиков его можно запускать периодически или вручную.
Большинство разработчиков приложений будут использовать модули тестовой установки apk, которые уже существуют в TF. Существует версия, которая устанавливается из локальной файловой системы , а также версия, которая может устанавливать APK-файлы, загруженные из службы сборки . Важно отметить, что последняя версия будет продолжать работать правильно с произвольным количеством экземпляров TF, работающих на одном хост-компьютере.
Благодаря опыту TF в работе с несколькими устройствами, было бы несложно классифицировать каждый результат теста по типу устройства, которое использовалось для этого теста. Таким образом, TF потенциально может генерировать двумерную (или многомерную) матрицу совместимости для каждой сборки приложения.
Служба тестирования
Например, служба тестирования может позволить разработчикам приложений отправлять приложения и запускать тесты на устройствах, оснащенных инструментами измерения энергопотребления, для определения энергопотребления приложения. Это отличается от двух предыдущих вариантов использования тем, что конструктор сервисов не контролирует устройства или запущенные приложения.
Поскольку Trade Federation может запускать любой класс Java, реализующий простой интерфейс IRemoteTest
, написать драйверы, которые могут координировать какое-либо внешнее оборудование с тестовым примером, выполняемым на устройстве, не составляет труда. Сам драйвер может создавать потоки, отправлять запросы на другие серверы или делать что-нибудь еще, что ему может понадобиться. Более того, простота и универсальность интерфейса отчетов о результатах ITestInvocationListener
означает, что также легко представлять произвольные результаты тестов (включая, например, числовые показатели мощности) в стандартный конвейер отчетов о результатах.