Firebase Test Lab is deprecated and will be fully shut down on September 30, 2027. To
maintain your testing workflows, you can migrate to the Developer Device Platform on Google
Cloud. See the
Developer Device Platform Migration Guide
and FAQ for more
details.
Чтобы переводить контент на ваш предпочитаемый язык, Google использует технологии на основе искусственного интеллекта. Переводы от ИИ могут содержать ошибки.
Устранение неполадок и часто задаваемые вопросы о Test Lab
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
На этой странице вы найдете ответы на часто задаваемые вопросы о тестировании с помощью Firebase Test Lab и инструкции по устранению неполадок. Известные проблемы также
документируются. Если вы не можете найти нужную информацию или вам требуется дополнительная помощь, присоединитесь к каналу #test-lab в Firebase Slack или обратитесь в службу поддержки Firebase.
Устранение неполадок
Почему тестирование занимает так много времени?
Если вы выберете устройство с высоким уровнем доступности в каталоге Test Lab, тестирование может начаться быстрее. Если у устройства низкая производительность, тестирование может занять больше времени. Если количество запущенных тестов намного больше, чем емкость выбранных устройств, тестирование может занять больше времени.
Тестирование на устройствах любого уровня может занять больше времени из-за следующих факторов:
Трафик, который влияет на доступность устройств и скорость тестирования.
Сбои в работе устройств или инфраструктуры, которые могут произойти в любой момент. Чтобы узнать, есть ли проблемы с инфраструктурой Test Lab, откройте панель мониторинга Firebase.
Чтобы узнать больше о емкости устройств в Test Lab, ознакомьтесь с информацией о емкости устройств для Android и iOS.
Почему результаты тестирования неоднозначны?
Неоднозначные результаты тестирования обычно возникают из-за отмены тестовых запусков или ошибок инфраструктуры.
Ошибки инфраструктуры вызваны внутренними проблемами Test Lab, например ошибками сети или неожиданным поведением устройства. Test Lab внутренне прекращает тестовые запуски, которые несколько раз приводят к ошибкам инфраструктуры, прежде чем сообщить о неопределенном результате. Однако вы можете отключить эти повторные попытки с помощью failFast.
Чтобы определить причину ошибки, выполните следующие действия:
Повторите тест в Test Lab, чтобы убедиться, что он воспроизводим.
Попробуйте запустить тест на другом устройстве или типе устройств, если это возможно.
Если проблема не исчезнет, обратитесь к команде Test Lab в канале #test-lab в Firebase Slack.
Почему после сегментирования тесты стали выполняться дольше?
Если количество сегментов превышает количество устройств, доступных в Test Lab, тестирование может занять больше времени. Чтобы избежать этой ситуации, попробуйте переключиться на другое устройство. Подробнее о том, как выбрать другое устройство, читайте в статье
Емкость устройства.
Почему тестирование долго не начинается?
Когда вы отправляете запрос на тестирование, ваше приложение сначала проверяется, повторно подписывается и т. д. в рамках подготовки к запуску тестов на устройстве. Обычно этот процесс занимает несколько секунд, но на него могут влиять различные факторы, например размер приложения.
После подготовки приложения выполнение тестов планируется и остается в очереди, пока устройство не будет готово к их запуску. Пока все тесты не будут выполнены, матрица будет иметь статус "Ожидает" (независимо от того, находятся ли тесты в очереди или выполняются).
Почему тестирование занимает так много времени?
После завершения выполнения теста его артефакты скачиваются с устройства, обрабатываются и загружаются в Cloud Storage. На продолжительность этого шага может повлиять количество и размер артефактов.
Устранение неполадок на устройствах Android
Приложение не возвращает данные и не может найти скриншоты
Объекты, созданные в результате выполнения тестов (например, скриншоты и файлы журналов), хранятся в Google Cloud Storage и отображаются в консоли Firebase. Если выполнение теста выполнялось в течение последних 90 дней, убедитесь, что вы назначили роли на уровне проекта (владелец проекта, редактор проекта или читатель проекта).
Также убедитесь, что для вашего проекта или организации не включен сервис Cloud Audit Logging.
Если выполнение было запущено более 90 дней назад, скорее всего, артефакты тестирования были автоматически удалены. Чтобы проверить конфигурацию групп результатов, откройте вкладку Результаты тестирования на панели управления Test Lab. По умолчанию сегмент результатов настроен на хранение объектов в течение 90 дней.
Чтобы хранить тестовые артефакты дольше, выполните команду gcloud firebase test android run с флагом --results-bucket и передайте название сегмента результатов. Дополнительную информацию можно найти в справочной документации по gcloud firebase test android run.
Почему я получаю неполные или отсутствующие результаты отчетов о тестировании инструментальных тестов?
При запуске инструментальных тестов могут возникать ошибки, указывающие на частичные результаты и содержащие сообщение Test run failed to complete. Expected
x tests, received y (где y меньше x). Это означает, что Test Lab не удалось проанализировать logcat на наличие маркеров начала или конца отчета о тестировании, которые обычно генерируются AndroidJUnitRunner.
Ниже перечислены распространенные причины этой проблемы.
Описание проблемы
Возможное решение
Тест не был запущен, так как истекло время ожидания. Если общая продолжительность тестов превышает указанное вами время ожидания или максимальное время ожидания, Test Lab отменяет остальные тесты.
Увеличьте время ожидания для матрицы, чтобы все тесты могли завершиться.
Разделите тесты на сегменты, если вы ещё этого не сделали. В этом случае каждый сегмент будет выполнять подмножество тестов и завершаться за более короткий период времени.
Если сегментирование уже включено, увеличьте количество сегментов.
Отчет о тестировании не удалось завершить, так как он был прерван или завис.
Тест может завершиться преждевременно из-за необработанного исключения или ошибки утверждения. Тесты могут застрять в бесконечном цикле или не иметь возможности продолжить работу, например, если приложение не показывает правильное представление и тест не может выполнить действие в пользовательском интерфейсе.
Проверьте видео и logcat, чтобы узнать, на каком этапе остановилось тестирование.
Специальный инструмент запуска тестов (включая расширение AndroidJUnitRunner) неожиданно завершил работу или записал в logcat непредвиденные маркеры начала или конца отчета о тестировании.
Проверьте код средства запуска тестов.
В logcat было записано слишком много журналов, что привело к переполнению буфера или сбою процесса logcat.
Уменьшите количество записей до logcat.
В тестируемом приложении произошел сбой.
Отладьте приложение.
Часто задаваемые вопросы
Какие бесплатные квоты доступны для Test Lab? Что делать, если они закончатся?
Firebase Test Lab предлагает бесплатные квоты для тестирования на устройствах и использования Cloud API. Обратите внимание, что квота на тестирование использует стандартный тарифный план Firebase, а квоты Cloud API – нет.
Квота на тестирование
Квоты на тестирование определяются количеством устройств, используемых для выполнения тестов.
В тарифном плане Firebase Spark есть фиксированная квота на бесплатное тестирование. Для тарифного плана Blaze квоты могут увеличиваться по мере роста использования Google Cloud. Если вы исчерпали квоту на тестирование, подождите до следующего дня или перейдите на тарифный план Blaze, если сейчас вы используете Spark.
Если вы уже используете тарифный план Blaze, вы можете запросить увеличение квоты.
Подробнее о квоте на тестирование…
Для Cloud Testing API предусмотрено два ограничения: на количество запросов в день на проект и на количество запросов за 100 секунд на проект. Отслеживать использование можно в консоли Google Cloud.
Квота Cloud Tool Results API
Для Cloud Tool Results API предусмотрено два ограничения: на количество запросов в день на проект и на количество запросов за 100 секунд на проект. Отслеживать использование можно в консоли Google Cloud.
Подробную информацию о лимитах API можно найти в статье Квоты Cloud API для Test Lab. Если вы достигли квоты API:
Отправьте запрос на повышение квот, изменив их непосредственно в консоли Google Cloud (обратите внимание, что по умолчанию для большинства ограничений заданы максимальные значения).
Чтобы запросить увеличение квот API, заполните форму запроса в консоли Google Cloud или обратитесь в службу поддержки Firebase.
Как узнать, поступает ли трафик на мой сервер из Test Lab?
Чтобы определить, поступает ли трафик с тестовых устройств, размещенных в Firebase, проверьте IP-адрес источника по нашим диапазонам IP-адресов.
Работает ли Test Lab с VPC-SC?
Test Lab не работает с VPC-SC, который блокирует копирование приложений и других тестовых артефактов между внутренним хранилищем Test Lab и сегментами результатов пользователей.
Как обнаружить нестабильные тесты в Test Lab?
Чтобы выявить нестабильное поведение в тестах, рекомендуем использовать параметр
--num-flaky-test-attempts
. Повторные запуски для устранения нестабильности оплачиваются или учитываются в рамках дневной квоты так же, как и обычные выполнения тестов.
Обратите внимание на следующее:
При обнаружении сбоя выполнение теста запускается заново. Повторно запустить только неудачные тесты нельзя.
Повторные запуски для устранения нестабильности планируются на одно и то же время, но не гарантируется, что они будут выполняться параллельно, например когда трафик превышает количество доступных устройств.
Часто задаваемые вопросы об iOS
Поддерживает ли Test Lab Appium, Flutter/FlutterDriver, ReactNative/Jest или Cucumber?
Некоторые из этих пунктов есть в наших планах, но пока мы не можем гарантировать поддержку этих платформ для тестирования и разработки приложений.
Где найти информацию об устройстве,
например разрешение экрана?
Подробную информацию об устройстве можно получить через API и из клиента gcloud с помощью команды describe:
gcloud firebase test ios models describe MODEL
Можно ли использовать сегментирование при тестировании приложений для iOS?
Разбиение на сегменты не поддерживается в Test Lab для iOS. Однако вы можете использовать клиент Flank для сегментирования тестовых сценариев iOS.
Для этого в файле .xctestrun задаются ключ и значения OnlyTestIdentifiers.
Подробную информацию можно найти на странице man для xcodebuild.xctestrun.
Почему в результатах тестирования на iOS нет видео?
В iOS 18 и более поздних версиях видео в результатах не поддерживаются.
Часто задаваемые вопросы об Android
Поддерживает ли Test Lab носимые устройства?
Да! Test Lab поддерживает Google Pixel Watch. Теперь вы можете тестировать автономные приложения для Wear OS на часах Google Pixel Watch. Подробнее о тестировании на доступных устройствах Test Lab…
Поддерживает ли Test Lab новейшие устройства Google?
Да! Test Lab поддерживает Google Pixel Tablet и Google Pixel Fold. Вы можете запускать тесты на своих отдельных физических устройствах.
Подробнее
Test Labоб устройствах …
Как определить, что в Test Lab выполняется тест?
Если вы тестируете приложение в Firebase или запускаете тесты для отчета о тестировании в Play Console, то можете определить, выполняется ли тест на устройстве, размещенном в Firebase. Для этого проверьте системное свойство firebase.test.lab в файле MainActivity. Затем вы можете выполнить дополнительные операторы на основе логического значения для testLabSetting. Подробнее об измененном поведении при тестировании…
Поддерживает ли Test Lab Appium, Flutter/FlutterDriver, ReactNative/Jest или Cucumber?
Некоторые из этих пунктов есть в наших планах, но пока мы не можем гарантировать поддержку этих платформ для тестирования и разработки приложений. Однако если вы создали приложение с помощью фреймворка, поддерживающего Espresso (например, Flutter), то можете написать инструментальный тест с помощью Espresso, а затем запустить его в Test Lab.
Поддерживает ли Test Lab тестирование обфусцированных приложений, например с помощью ProGuard или R8?
Test Lab не поддерживает обфускацию и деобфускацию. Приложение, скорее всего, будет работать, но все обфусцированные данные приложения, например трассировки стека, будут отображаться в журналах в обфусцированном виде.
Можно ли использовать складное устройство в разных состояниях и положениях при тестировании в Test Lab?
Складные устройства могут находиться в разных состояниях, например FLAT (полностью открыто) или HALF_OPENED (между полностью открытым и полностью закрытым).
Позы, с другой стороны, состоят из определенной ориентации устройства и складного состояния. Например, режим настольного компьютера – это состояние HALF_OPENED в горизонтальной ориентации, а режим книги – состояние HALF_OPENED в вертикальной ориентации.
Можно ли попробовать Test Lab, если у меня нет приложения?
В отличие от других продуктов Firebase, для использования Test Lab не нужно добавлять Firebase SDK. Если у вас нет приложения, вы можете скачать APK-файл в интернете или создать приложение и тестовый APK-файл на основе одного из примеров в репозитории AndroidX на GitHub.
Обратите внимание, что для автоматизированного тестирования нужен только APK-файл приложения, а для инструментального теста – APK-файлы приложения и теста, созданные на основе исходного кода. Подробнее об инструментальных тестах…
Какие устройства лучше всего подходят для тестирования различий скриншотов?
Тестирование на основе сравнения скриншотов – это метод, при котором утверждения теста основаны на сравнении изображений экрана, полученных во время выполнения теста, с эталонными изображениями, представляющими ожидаемое поведение. Такие тесты могут быть более хрупкими на некоторых типах устройств, чем на других. Для таких тестов рекомендуем использовать эмуляторы устройств с архитектурой Arm (*.arm). В эмуляторах Arm используются образы, которые очень похожи на образы в стандартных эмуляторах Android Studio или идентичны им.
Мы также рекомендуем изучить библиотеки тестирования, которые могут помочь сделать тестирование скриншотов более надежным при наличии ожидаемых изменений.
Обновляет ли Test Lab виртуальные устройства?
Да! Виртуальные устройства обновляются при следующих изменениях:
Обновление существующих изображений
Прекращение поддержки более ранних уровней API
Добавлены новые уровни Android API
Как включить отчеты о покрытии?
Чтобы включить отчеты о покрытии, добавьте coverage=true в поле environmentVariables.
Если вы используете инструмент оркестрации тестов Android, вам нужно указать каталог для хранения результатов покрытия:
Где найти сведения об устройстве, например разрешение экрана, поддерживаемые ABI и т. д.?
Подробную информацию об устройстве можно получить через API и из клиента gcloud с помощью команды describe:
gcloud firebase test android models describe MODEL
Как войти в приложение для Wear OS без телефона?
Если ваше приложение поддерживает вход с аккаунтом Google, то он должен автоматически выполняться с тестовым аккаунтом. Если для входа в приложение обычно требуется телефон, вы можете создать вариант сборки, который пропускает вход и использует токен, встроенный в тестовую сборку или считанный из файлов на диске, обычно отправляемых с помощью --other-files option. Подробнее о пользовательских учетных данных и вводе текста при автоматизированном тестировании…
Известные проблемы
Проверочные коды при входе
Автоматизированное тестирование не может обойти экраны входа, которые требуют дополнительных действий пользователя, помимо ввода учетных данных, например прохождения проверки CAPTCHA.
Известные проблемы для iOS
Автоматический вход
Автоматический вход с аккаунтом Google не поддерживается в автоматизированном тестировании для iOS+ (бета).
Известные проблемы, связанные с Android
Поддержка фреймворков пользовательского интерфейса
Автоматизированное тестирование лучше всего подходит для приложений, в которых используются элементы интерфейса из фреймворка Android UI (включая объекты View, ViewGroup и WebView). Если вы используете автоматизированное тестирование для приложений, в которых используются другие фреймворки пользовательского интерфейса, включая приложения на игровом движке Unity, тестирование может завершиться на первом экране.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2026-10-16 UTC."],[],[]]