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.
Если выполнение было выполнено более 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, вы можете запросить увеличение квоты.
Подробнее о квоте на тестирование…
Вы можете отслеживать использование квоты на тестирование в консоли Google Cloud.
Квота Cloud Testing API
Для Cloud Testing API действуют два ограничения квоты: количество запросов в день на проект и количество запросов каждые 100 секунд на проект. Вы можете отслеживать использование в консоли Google Cloud.
Квота для Cloud Tool Results API
Для Cloud Tool Results API действуют два ограничения квоты: количество запросов в день на проект и количество запросов каждые 100 секунд на проект. Вы можете отслеживать использование в консоли Google Cloud.
Отправьте запрос на повышение квоты, изменив квоты непосредственно в консоли Google Cloud (обратите внимание, что по умолчанию большинство лимитов установлены на максимальном уровне), или
Отправьте запрос на увеличение квоты API, заполнив форму в консоли Google Cloud или обратившись в службу поддержки Firebase.
Как узнать, поступает ли трафик на мой сервер от Test Lab?
На сервере можно определить, поступает ли трафик с тестовых устройств, размещенных в Firebase, проверив IP-адрес источника по нашим диапазонам IP-адресов.
Работает ли Test Lab с зонами безопасности VPC?
Test Lab не работает с VPC-SC, который блокирует копирование приложений и других тестовых артефактов между внутренним хранилищем Test Lab и корзинами результатов пользователей.
Как обнаружить нестабильные тесты в Test Lab?
Чтобы выявлять нестабильное поведение в тестах, рекомендуем использовать параметр
--num-flaky-test-attempts
. Повторные запуски тестов Deflake оплачиваются или учитываются в ежедневной квоте так же, как и обычные запуски.
Обратите внимание на следующее:
При обнаружении ошибки весь тест выполняется заново. Нет возможности повторно запустить только тесты, которые не прошли.
Повторные запуски для устранения нестабильности планируются на одно и то же время, но не гарантируется, что они будут выполняться параллельно, например если трафик превышает количество доступных устройств.
Часто задаваемые вопросы об 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 на фрагменты.
Для этого нужно задать ключ OnlyTestIdentifiers и значения в файле .xctestrun.
Подробнее о xcodebuild.xctestrun рассказывается на странице man.
Почему в результатах тестирования на устройстве iOS отсутствуют видео?
В iOS 18 и более поздних версиях видео не поддерживаются в результатах поиска.
Часто задаваемые вопросы об Android
Поддерживает ли Test Lab носимые устройства?
Да! Test Lab поддерживает Google Pixel Watch. Теперь вы можете тестировать автономные приложения Wear на часах 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 не поддерживается в Robo-тестах для iOS+ (бета-версия).
Известные проблемы, связанные с Android
Поддержка фреймворков интерфейса
Автоматизированное тестирование лучше всего подходит для приложений, в которых используются элементы интерфейса из фреймворка Android UI (включая объекты View, ViewGroup и WebView). Если вы используете Robo-тестирование для приложений, в которых применяются другие фреймворки интерфейса, в том числе игровой движок 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-07 UTC."],[],[]]