Аргументы в отношении инструментов микробенчмарка

Настройте поведение Microbenchmark со следующими аргументами инструментария. Вы можете добавить их в свою конфигурацию Gradle или применить непосредственно при запуске инструментов из командной строки. Чтобы установить эти аргументы для всех тестов Android Studio и командной строки, добавьте их в testInstrumentationRunnerArguments :

android {
    defaultConfig {
        // ...
        testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
    }
}

Вы также можете настроить аргументы инструментирования при запуске тестов из Android Studio. Чтобы изменить аргументы, сделайте следующее:

  1. Отредактируйте конфигурацию запуска, нажав «Изменить» и выбрав конфигурацию, которую хотите изменить.
    Рисунок 1. Отредактируйте конфигурацию запуска.
  2. Измените аргументы инструментария, щелкнув рядом с полем «Аргументы инструментария» .
    Рисунок 2. Отредактируйте аргумент инструментария.
  3. Нажмите и добавьте необходимый аргумент инструментария.
    Рисунок 3. Добавьте аргумент инструментирования.

Если вы запускаете тест из командной строки, используйте -P android.testInstrumentationRunnerArguments.[name of the argument] :

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling

Если вы вызываете команду am Instrument напрямую (что может иметь место в средах тестирования CI), передайте аргумент am instrument с -e :

adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner

Дополнительные сведения о настройке тестов в CI см. в разделе Бенчмаркинг в CI.

ДополнительныйTestOutputDir

Настраивает, где на устройстве сохраняются отчеты об тестах JSON и результаты профилирования.

  • Тип аргумента: строка пути к файлу.
  • По умолчанию: проверить внешний каталог APK.

androidx.benchmark.dryRunMode.enable

Позволяет запускать тесты в одном цикле, чтобы убедиться, что они работают правильно.

Это означает:

  • Ошибки конфигурации не применяются (например, чтобы упростить регулярные проверки правильности на эмуляторах).
  • Тестирование выполняется только в одном цикле без прогрева.
  • Измерения и трассировки не фиксируются, чтобы сократить время выполнения.

Это оптимизирует производительность тестирования и проверку логики тестов, а не правильность сборки и измерений.

  • Тип аргумента: логический
  • По умолчанию: false

androidx.benchmark.iterations

Переопределяет целевое количество итераций, управляемое временем, чтобы обеспечить постоянный объем работы. Обычно это полезно только при включенном профилировании , чтобы обеспечить согласованный объем работы, выполняемой в трассировке профилирования при сравнении различных реализаций или запусков. В других сценариях это, вероятно, снижает точность или стабильность измерений.

  • Тип аргумента: целое число
  • По умолчанию: не указано

androidx.benchmark.junit4.SideEffectRunListener

Вы можете получить противоречивые результаты тестирования, если во время выполнения теста выполняется несвязанная фоновая работа.

Чтобы отключить фоновую работу во время тестирования производительности, установите тип аргумента инструментария listener на androidx.benchmark.junit4.SideEffectRunListener .

  • Тип аргумента: строка
  • Доступные варианты:
    • androidx.benchmark.junit4.SideEffectRunListener
  • По умолчанию: не указано

androidx.benchmark.output.enable

Включает запись результирующего файла JSON во внешнее хранилище.

  • Тип аргумента: логический
  • По умолчанию: true

androidx.benchmark.profiling.mode

Позволяет захватывать файлы трассировки во время выполнения тестов. Доступные параметры см. в разделе «Профилирование микробенчмарка» .

  • Тип аргумента: строка
  • Доступные варианты:
    • MethodTracing
    • StackSampling
    • None
  • По умолчанию: None

androidx.benchmark.suppressErrors

Принимает список ошибок, разделенных запятыми, которые преобразуются в предупреждения.

  • Тип аргумента: список строк
  • Доступные варианты:
    • DEBUGGABLE
    • LOW-BATTERY
    • EMULATOR
    • CODE-COVERAGE
    • UNLOCKED
    • SIMPLEPERF
    • ACTIVITY-MISSING
  • По умолчанию: пустой список.

androidx.benchmark.startupMode.enable (устарело)

Перенастраивает поведение цикла для поддержки кода тестирования во время запуска. Тесты выполняются без прогрева в течение 10 измерений. Чтобы минимизировать накладные расходы в микротестах, усреднение цикла отключено.

  • Тип аргумента: логический
  • По умолчанию: false
{% дословно %} {% дословно %} {% дословно %} {% дословно %}