На этой странице представлена помощь по устранению неполадок и ответы на часто задаваемые вопросы о выполнении тестов с помощью Firebase Test Lab. Известные проблемы также задокументированы. Если вы не можете найти то, что ищете, или вам нужна дополнительная помощь, присоединитесь к каналу #test-lab в Firebase Slack или обратитесь в службу поддержки Firebase .
Поиск неисправностей
При выборе устройства с высоким уровнем мощности в каталоге Test Lab тесты могут запускаться быстрее. Если емкость устройства мала, выполнение тестов может занять больше времени. Если количество вызванных тестов намного превышает емкость выбранных устройств, выполнение тестов может занять больше времени.
Тесты, выполняемые на любом уровне мощности устройства, могут занять больше времени из-за следующих факторов:
- Трафик, влияющий на доступность устройства и скорость тестирования.
- Сбои устройств или инфраструктуры, которые могут произойти в любое время. Чтобы проверить, есть ли в отчетах инфраструктура для Test Lab, см. панель мониторинга состояния Firebase .
Чтобы узнать больше о емкости устройства в Test Lab, см. сведения о емкости устройства для Android и iOS .
Неубедительные результаты тестирования обычно возникают либо из-за отмененных тестовых прогонов, либо из-за ошибок инфраструктуры.
Ошибки инфраструктуры вызваны внутренними проблемами лаборатории тестирования, такими как сетевые ошибки или непредвиденное поведение устройства. Test Lab внутренне удаляет тестовые прогоны, которые несколько раз приводят к ошибкам инфраструктуры, прежде чем сообщить о неубедительном результате; однако вы можете отключить эти повторные попытки с помощью failFast .
Чтобы определить причину ошибки, выполните следующие действия:
- Проверьте известные сбои в панели состояния Firebase .
Повторите тест в Test Lab, чтобы убедиться, что он воспроизводим.
Попробуйте запустить тест на другом устройстве или типе устройства, если это применимо.
Если проблема не устранена, свяжитесь с командой тестовой лаборатории по каналу #test-lab в Firebase Slack.
Разделение может привести к тому, что ваши тесты будут выполняться дольше, если количество указанных вами сегментов превышает количество устройств, доступных для использования в Test Lab. Чтобы избежать этой ситуации, попробуйте переключиться на другое устройство. Дополнительные сведения о выборе другого устройства см. в разделеЕмкость устройства .
Когда вы отправляете тестовый запрос, ваше приложение сначала проверяется, повторно подписывается и т. д. для подготовки к запуску тестов на устройстве. Обычно этот процесс занимает менее нескольких секунд, но на него могут повлиять такие факторы, как размер вашего приложения.
После того, как ваше приложение подготовлено, выполнение тестов планируется и остается в очереди до тех пор, пока устройство не будет готово к его запуску. Пока выполнение всех тестов не завершится, состояние матрицы будет «Ожидание» (независимо от того, находятся ли тестовые выполнения в очереди или активно выполняются).
После завершения выполнения теста артефакты теста загружаются с устройства, обрабатываются и загружаются в облачное хранилище. Продолжительность этого шага может зависеть от количества и размера артефактов.
Часто задаваемые вопросы
Firebase Test Lab предлагает бесплатные квоты для тестирования на устройствах и использования облачных API. Обратите внимание, что квота тестирования использует стандартный тарифный план Firebase, а квоты Cloud API — нет.
Квота тестирования
Квоты тестирования определяются количеством устройств, используемых для запуска тестов. План Firebase Spark имеет фиксированную квоту на бесплатное тестирование для пользователей. Для плана Blaze ваши квоты могут увеличиться, если ваше использование Google Cloud со временем увеличится. Если вы достигли своей квоты тестирования, подождите до следующего дня или перейдите на план Blaze, если вы в настоящее время используете план Spark. Если вы уже пользуетесь планом Blaze, вы можете запросить увеличение квоты. Дополнительные сведения см. в разделе Проверка квоты .
Вы можете отслеживать использование квоты тестирования в Google Cloud Console .
Квота API облачного тестирования
Cloud Testing API поставляется с двумя ограничениями квоты: запросы в день на проект и запросы на каждые 100 секунд на проект. Вы можете отслеживать свое использование в Google Cloud Console .
Квота API результатов Cloud Tool
API результатов Cloud Tool поставляется с двумя ограничениями квоты: запросы в день на проект и запросы на каждые 100 секунд на проект. Вы можете отслеживать свое использование в Google Cloud Console .
Дополнительную информацию об ограничениях API см. в разделе Квоты Cloud API для Test Lab . Если вы достигли квоты API:
Отправьте запрос на более высокие квоты, отредактировав свои квоты непосредственно в Google Cloud Console (обратите внимание, что большинство ограничений по умолчанию установлены на максимум), или
Запросите более высокие квоты API, заполнив форму запроса в Google Cloud Console или обратившись в службу поддержки Firebase .
В своем бэкэнде вы можете определить, поступает ли трафик с тестовых устройств, размещенных в Firebase, сравнив исходный IP-адрес с нашими диапазонами IP-адресов .
Test Lab не работает с VPC-SC, который блокирует копирование приложений и других тестовых артефактов между внутренним хранилищем Test Lab и сегментами результатов пользователей. На данный момент был подан запрос на добавление поддержки VPC-SC в будущем выпуске.
Чтобы обнаружить нестабильное поведение в ваших тестах, мы рекомендуем использовать параметр--num-flaky-test-attempts. Повторные запуски Deflake оплачиваются или засчитываются в вашу дневную квоту так же, как и обычные тесты.
Имейте в виду следующее:
- Все выполнение теста запускается снова при обнаружении сбоя. Не поддерживается повторение только неудачных тестовых случаев.
- Повторные запуски Deflake запланированы на одно и то же время, но не гарантируется параллельное выполнение, например, когда трафик превышает количество доступных устройств.
Хотя некоторые из этих элементов находятся в нашей дорожной карте, в настоящее время мы не можем взять на себя обязательства по поддержке этих платформ тестирования и разработки приложений.
Подробная информация об устройстве доступна через API и может быть доступна из клиента gcloud с помощью команды описать :
gcloud firebase test ios models describe MODEL
Разделение изначально не поддерживается в Test Lab для iOS. Однако вы можете использовать клиент Flank для разделения тестовых случаев iOS.
Это работает путем установки ключа и значений OnlyTestIdentifiers
в файле .xctestrun
. См. man
страницу для xcodebuild.xctestrun
для получения более подробной информации.