Запустите тесты CTS

Trade Federation — это платформа непрерывного тестирования для запуска тестов на устройствах Android. Чтобы запустить набор тестов совместимости (CTS), сначала прочтите Обзор Trade Federation , где объясняется структура тестирования Tradefed.

Чтобы запустить план тестирования:

  1. Настройте тестируемые устройства (DUT) согласно настройке устройства Android .
  2. Убедитесь, что вы установили последние версии Android Debug Bridge (adb) и Android Asset Packaging Tool (AAPT) и добавили расположение этих инструментов в системный путь вашего компьютера. Информацию об установке этих инструментов см. в разделе Настройка CTS: ADB и AAPT.
  3. Загрузите выпущенные сборки CTS на свой хост-компьютер Linux и разархивируйте сборку на хост.
  4. Подключите хотя бы одно устройство. Для подготовки ТУ:
    • Нажмите кнопку «Домой» , чтобы перевести устройство на главный экран.
    • Не используйте DUT для каких-либо других задач.
    • Держите тестируемое устройство в неподвижном положении, чтобы избежать срабатывания датчика.
    • Наведите камеру устройства на объект, который можно сфокусировать.
    • Не нажимайте никакие клавиши на устройстве во время работы CTS. Нажатие клавиш или прикосновение к экрану тестируемого устройства мешает выполнению тестов и может привести к сбоям в тестировании.
  5. Запустите сценарий консоли CTS cts-tradefed из папки, в которой был распакован пакет CTS. В командной строке хоста выполните:

    ./android-cts/tools/cts-tradefed
  6. Запустите план тестирования по умолчанию (содержит все пакеты тестов):

    cts-tradefed > run cts
    • Если вы хотите сократить время выполнения тестов, вы можете разделить тесты на несколько устройств. Для шардинга требуется, чтобы хост подключил как минимум два устройства, но для эффективности рекомендуется использовать шесть или более устройств. При шардинге более 1 устройства:

      • Для Android 9 и выше используйте параметр команды

        --shard-count number_of_shards
      • Для Android 8.1 и более ранних версий используйте параметр команды

        --shards number_of_shards
    • Если вы не хотите запускать весь набор тестов, вы можете запустить выбранный вами план CTS из командной строки:

      run cts --plan test_plan_name

      Чтобы найти имя плана тестирования:

      • Для Android 7.0 и выше, чтобы увидеть список тестовых модулей, введите

        list modules
      • Для Android 6.0 и ниже, чтобы просмотреть список планов тестирования в репозитории, введите

        list plans
      • Для Android 6.0 и ниже, чтобы просмотреть список тестовых пакетов в репозитории, введите

        list packages
    • Дополнительные параметры команды в зависимости от версии CTS см. в справочнике по консольным командам или в разделе «Помощь всем» в консоли Tradefed.

  7. Запускайте несколько сеансов повторных попыток до тех пор, пока все тестовые модули не будут завершены и номера неудачных тестов не станут одинаковыми в последних двух сеансах повторных попыток.

    • Для Android 9 и выше используйте

      run retry --retry session_number --shard-count number_of_shards
    • Для Android 7.0–8.1 используйте

      run cts --retry session_number --shards number_of_shards
    • Дополнительные параметры команды повтора в зависимости от версии CTS см. в разделе Командная консоль CTS v2 .

    • Подробности реализации повторной попытки CTS см. в разделе Повторная попытка Trade Federation Suite .

  8. Запускайте сеанс повторной попытки только для неудачных параметризованных тестов. Пройденные параметризованные тесты не повторяются.

    • Для Android 11 и более поздних версий по умолчанию в команде run cts включена следующая опция повтора команды:

      run retry --retry  --new-parameterized-handling
  9. Просматривайте ход тестирования и результаты, представленные на консоли.

Запустите CTS с помощью Android Test Station

Android Test Station — это инструмент автоматизации тестирования, который разработчики Android и инженеры по тестированию могут использовать для использования пользовательского интерфейса для запуска стандартных наборов тестов. Он работает с пакетом тестов совместимости Android (CTS) .

Инструмент общедоступен через Руководство пользователя ATS , а его код находится в открытом доступе в AOSP ( multitest_transport , tradefed_cluster ).

Запустите CTS для альтернативных режимов

В выпуске CTS 10 R4 добавлен план тестирования для устройств с альтернативными режимами или для устройств с более чем одним экраном. Выполните план тестирования альтернативных режимов, используя run cts-foldable .

Пройденные или неудавшиеся тестовые случаи для альтернативного режима экрана добавляются со значением из display_mode , например testcase1[display_mode=0] .

В CTS 13 API DeviceStateManager позволяет запускать тестовые модули со следующим параметром конфигурации в разных состояниях складного устройства. Выполнение теста в CTS происходит автоматически на основе состояний складывания дисплея, определенных в устройстве, без необходимости запуска плана тестирования cts-foldable .

<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />

Тестирование нескольких устройств в CTS

Android 13 и более поздних версий поддерживают тестирование на нескольких устройствах. Тесты, требующие нескольких устройств, автоматически выполняются во время запуска CTS. CTS 13 включает в себя несколько тестов для нескольких устройств, которые запускаются автоматически при использовании сегментирования. Хотя тестирование не требует дополнительных изменений в физической настройке, для правильной работы тестов необходимо установить virtualenv . Подробную информацию см. в разделе Пакеты для нескольких устройств .

Запуск тестов на нескольких устройствах

Чтобы независимо запустить тестирование на нескольких устройствах, используйте следующий код:

  cts-tradefed > run cts-multidevice
  

Поддерживаются все стандартные опции. Чтобы настроить таргетинг на конкретные устройства, добавьте --serial <serial1> --serial <serial2> и т. д. для количества целевых устройств.

Чтобы автоматически запускать тесты на нескольких устройствах, используйте сегментирование, как в --shard-count 2 .