Как анализировать результаты тестирования в Firebase Test Lab

Запускать тесты в Firebase Test Lab можно разными способами, в том числе через интерфейс командной строки, Android Studio, пользовательский интерфейс Test Lab в консоли Firebase и Testing API. Независимо от того, как вы запускаете тесты, результаты сохраняются в указанном вами проекте Firebase. Помимо перечисленных выше инструментов, для изучения результатов можно использовать ToolResults API. На этой странице описано, как просматривать и анализировать результаты тестирования.

Основные понятия

В консоли Firebase можно посмотреть результаты всех предыдущих тестов. Для этого перейдите в раздел DevOps & Engagement (DevOps и вовлечение) > Test Lab (Лаборатория тестирования). На этой странице показаны подробные результаты тестирования приложений, которое вы проводили в своем проекте с помощью Test Lab.

Чтобы проанализировать результаты тестирования, необходимо сначала разобраться в трех понятиях:

Когда вы запускаете тест или набор тестов на выбранных устройствах и конфигурациях, Test Lab выполняет тест для вашего приложения в пакетном режиме, а затем отображает результаты в виде матрицы тестов.

Устройства × Выполнения тестов = Матрица тестов

Устройство
Физическое или виртуальное устройство (только Android), на котором вы запускаете тест, например телефон, планшет или носимое устройство. Устройства в матрице тестов идентифицируются по модели, версии ОС, ориентации экрана и региональным настройкам (также известным как настройки местоположения и языка).
Тест, выполнение теста
Тест или набор тестов, которые нужно запустить на устройстве. Вы можете запустить один тест на устройство или разделить его на несколько частей и запустить их на разных устройствах.
Матрица тестов
Содержит статусы и результаты выполнения тестов. Если хотя бы одно выполнение теста в матрице завершится неудачно, то и вся матрица будет считаться неудачной.

Ниже рассказывается, как интерпретировать результаты тестирования.

Как интерпретировать результаты тестирования

Чтобы посмотреть результаты тестирования, нажмите на значок Test Lab.

История тестирования группируется по приложениям. Для каждого приложения показываются только пять последних матриц тестов. Если их больше, вы можете нажать на ссылку Все матрицы внизу списка тестов приложения, чтобы увидеть полный список для этого приложения.

Как интерпретировать результаты матрицы тестов

При запуске теста через интерфейс Test Lab вы будете перенаправлены на страницу, где можно посмотреть матрицу тестов и нажать на определенное выполнение теста, чтобы увидеть результаты. Android Studio и команда gcloud также предоставляют URL страницы с результатами матрицы тестов.

В типичной матрице тестов вы можете запустить тест на десятке или около того различных устройств. У каждого выполнения теста может быть свой результат. Возможные результаты выполнения теста в матрице тестов:

  • Тест пройден (Пройдено). Ошибок не обнаружено.
  • Failed Проверка не пройдена (Сбой). Произошла по крайней мере одна ошибка .
  • Неопределенный Тест пройден: результаты тестирования неопределенные, возможно, из-за ошибки Test Lab.
  • Пропущено (Тест пройден): значения параметров, выбранные для некоторых выполнений тестов в матрице, несовместимы. Это происходит, когда выбранные устройства несовместимы с одним или несколькими выбранными уровнями Android API.

Чтобы посмотреть сводные результаты для всех матриц тестов определенного приложения в проекте Firebase, нажмите на название приложения, как показано в примере ниже.

Пример страницы с результатами матрицы тестов, содержащей только четыре выполнения тестов Результаты матрицы тестов

Откроется список матриц тестов для вашего приложения. Нажмите на название матрицы, чтобы посмотреть результаты. Чтобы открыть список матриц тестов для других приложений, связанных с вашим проектом Firebase, нажмите на название приложения (выделено красным на изображении ниже).

Пример страницы со списком матриц тестов Список матриц тестирования

Матрица тестов может быть пройдена, не пройдена или не дать результатов. Если хотя бы одно выполнение теста в матрице завершилось неудачно или не дало результатов, то и вся матрица будет помечена как неудачная или неопределенная.

Как интерпретировать результаты автоматизированного тестирования

Если вы проводили автоматизированное тестирование, то в результатах будут видео и скриншоты сканирования интерфейса, а также обычные показатели. На видео и скриншотах будут визуальные индикаторы действий, которые автоматизированное тестирование выполняло во время сканирования. Это похоже на функцию "Показывать нажатия" в Android. Они помогут вам следить за ходом тестирования и воспроизводить обнаруженные ошибки.

Пример видео с результатами автоматизированного тестирования

Результаты автоматизированного тестирования

Как интерпретировать результаты одного выполнения теста

На странице результатов матрицы тестов нажмите на одно из выполнений теста, чтобы посмотреть его результат.

Пример страницы с результатами выполнения теста Результаты выполнения тестов

На этой странице вы можете посмотреть, сколько времени заняло выполнение каждого теста. Вы также можете посмотреть результаты для определенных тестовых сценариев, которые соответствуют методам в тестовом APK (для инструментальных тестов), и подробные результаты тестирования, включая журналы, скриншоты и видео. Для автоматизированного тестирования подробные результаты также включают карту действий, на которой графически показаны пути в интерфейсе, пройденные в ходе тестирования.

Результаты разделенных инструментальных тестов

Чтобы вам было проще интерпретировать результаты инструментальных тестов, Test Lab создает для каждого из них отдельную страницу с подробным отчетом, в котором есть трассировка стека, журналы и видео. Эта функция работает независимо от того, используете ли вы Android Orchestrator.

Пример страницы с результатами тестового примера Результаты тестовых примеров

Как интерпретировать результаты проверки доступности

Для обнаружения проблем со специальными возможностями в приложении при автоматизированном тестировании используется Сканер доступности Android. Вы также можете запустить сканирование локально на своем устройстве. Инструкции о том, как посмотреть и интерпретировать результаты автоматизированного тестирования, вы найдете в статье Начало работы со Сканером доступности.

Общие сведения о том, как улучшить специальные возможности приложения, можно найти в документации для разработчиков Android.

Показатели эффективности

Тесты, выполняемые на физических устройствах, также возвращают показатели производительности:

ПоказательОбязательная конфигурация устройства
Время запуска приложенияAPI 19+
Загрузка ЦПAPI 21+
Использование памяти
Сетевая активность
Количество кадров в секундуAPI 21+ и включает SurfaceView

Подробные результаты тестирования

Подробные результаты тестирования доступны в течение 90 дней после его проведения и хранятся в сегменте Google Cloud Storage (но также видны в консоли Firebase). Чтобы посмотреть подробные результаты тестирования в сегменте Cloud Storage, нажмите Результаты тестирования на странице результатов выполнения теста. Когда подробные результаты тестирования станут недоступны, вы по-прежнему сможете видеть, какие тесты были пройдены, а какие – нет.

Если вы хотите хранить подробные результаты тестирования дольше 90 дней, вы можете отправлять их в собственный сегмент Cloud Storage, используя параметр командной строки gcloud --results-bucket. Затем вы можете задать параметр Возраст, чтобы определить, как долго результаты будут храниться в сегменте Cloud Storage. Подробнее об условиях жизненного цикла и о том, как изменить настройку Возраст.

Если при выполнении теста вы получаете ошибку does not have storage.objects.create access to the Google Cloud Storage object. Permission 'storage.objects.create' denied on resource (or it may not exist).., у пользователя, выполняющего тест, может не быть нужного разрешения для проекта. По умолчанию Firebase создает для вас сегмент в Google Cloud Storage, однако для этого у пользователя, выполняющего тест, должна быть роль roles/editor, которая предоставляет широкие разрешения. Если вы не можете предоставить эту роль пользователю, используйте параметр командной строки gcloud --results-bucket.