Чтобы переводить контент на ваш предпочитаемый язык, 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, тестирование может завершиться на первом экране.