На этой странице представлена помощь по устранению неполадок и ответы на часто задаваемые вопросы о запуске тестов с помощью Firebase Test Lab . Известные проблемы также задокументированы. Если вы не можете найти то, что ищете, или вам нужна дополнительная помощь, присоединяйтесь к каналу #test-lab в Firebase Slack или обратитесь в службу поддержки Firebase .
Поиск неисправностей
При выборе в каталоге Test Lab устройства с высоким уровнем мощности тесты могут запускаться быстрее. Если устройство имеет низкую емкость, выполнение тестов может занять больше времени. Если количество вызванных тестов намного превышает емкость выбранных устройств, выполнение тестов может занять больше времени.
Тесты, выполняемые на любом уровне мощности устройства, могут занять больше времени из-за следующих факторов:
- Трафик, который влияет на доступность устройства и скорость тестирования.
- Сбои устройства или инфраструктуры, которые могут произойти в любой момент. Чтобы проверить, существует ли отчетная инфраструктура для Test Lab , см. панель мониторинга состояния Firebase .
Дополнительные сведения о емкости устройства в Test Lab см. в сведениях о емкости устройства для Android и iOS .
Неубедительные результаты тестов обычно происходят либо из-за отмены тестовых запусков, либо из-за ошибок инфраструктуры.
Ошибки инфраструктуры вызваны внутренними проблемами Test Lab , например сетевыми ошибками или неожиданным поведением устройства. Test Lab самостоятельно прекращает выполнение тестовых запусков, которые несколько раз приводят к ошибкам инфраструктуры, прежде чем сообщить о неубедительном результате; однако вы можете отключить эти повторы с помощью FailFast .
Чтобы определить причину ошибки, выполните следующие действия:
- Проверьте наличие известных сбоев на панели состояния Firebase .
Повторите тест в Test Lab чтобы убедиться в его воспроизводимости.
Попробуйте запустить тест на другом устройстве или типе устройства, если это применимо.
Если проблема не устранена, свяжитесь с командой Test Lab по каналу #test-lab в Firebase Slack.
Сегментирование может привести к тому, что ваши тесты будут выполняться дольше, если количество указанных вами сегментов превышает количество устройств, доступных для использования в Test Lab . Чтобы избежать такой ситуации, попробуйте переключиться на другое устройство. Дополнительную информацию о выборе другого устройства см.Емкость устройства .
Когда вы отправляете запрос на тестирование, ваше приложение сначала проверяется, повторно подписывается и т. д. в рамках подготовки к запуску тестов на устройстве. Обычно этот процесс завершается менее чем за несколько секунд, но на него могут влиять такие факторы, как размер вашего приложения.
После подготовки приложения выполнение тестов планируется и остается в очереди до тех пор, пока устройство не будет готово к его запуску. Пока выполнение всех тестов не завершится, статус матрицы будет «Ожидание» (независимо от того, находятся ли выполнения тестов в очереди или активно выполняются).
После завершения выполнения теста артефакты теста загружаются с устройства, обрабатываются и загружаются в Cloud Storage . На продолжительность этого шага может влиять количество и размер артефактов.
Часто задаваемые вопросы
Firebase Test Lab предлагает бесплатные квоты на тестирование на устройствах и использование Cloud API. Обратите внимание, что квота тестирования использует стандартный тарифный план Firebase, а квоты Cloud API — нет.
Квота тестирования
Квоты тестирования определяются количеством устройств, используемых для запуска тестов. План Firebase Spark имеет фиксированную квоту на бесплатное тестирование для пользователей. Для плана Blaze ваши квоты могут увеличиться, если со временем вы увеличите использование Google Cloud. Если вы достигли своей квоты на тестирование, подождите до следующего дня или перейдите на план Blaze, если вы сейчас используете план Spark. Если вы уже используете план Blaze, вы можете запросить увеличение квоты. Дополнительные сведения см. в разделе Тестирование квоты .
Вы можете отслеживать использование квоты тестирования в консоли Google Cloud .
Квота API облачного тестирования
API облачного тестирования имеет два ограничения квоты: количество запросов в день на проект и количество запросов каждые 100 секунд на проект. Вы можете отслеживать свое использование в консоли Google Cloud .
Квота API результатов Cloud Tool
API результатов Cloud Tool имеет два ограничения квоты: количество запросов в день на проект и количество запросов каждые 100 секунд на проект. Вы можете отслеживать свое использование в консоли Google Cloud .
Дополнительные сведения об ограничениях API см. в разделе Квоты Cloud API для Test Lab . Если вы достигли квоты API:
Отправьте запрос на увеличение квот, отредактировав квоты непосредственно в консоли Google Cloud (обратите внимание, что для большинства ограничений по умолчанию установлено максимальное значение) или
Запросите более высокие квоты API, заполнив форму запроса в консоли Google Cloud или обратившись в службу поддержки Firebase .
Из своего серверного интерфейса вы можете определить, поступает ли трафик с тестовых устройств, размещенных на Firebase, проверив исходный IP-адрес по нашим диапазонам IP-адресов .
Test Lab не работает с VPC-SC, который блокирует копирование приложений и других тестовых артефактов между внутренним хранилищем Test Lab и сегментами результатов пользователей.
Чтобы обнаружить нестабильное поведение в ваших тестах, мы рекомендуем использовать--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
.
Известные проблемы
Робо-тест не может обойти экраны входа, которые требуют дополнительных действий пользователя, помимо ввода учетных данных для входа, например прохождения CAPTCHA.
Робо-тест лучше всего работает с приложениями, которые используют элементы пользовательского интерфейса из платформы пользовательского интерфейса Android (включая объекты View
, ViewGroup
и WebView
). Если вы используете Robo-тест для проверки приложений, использующих другие платформы пользовательского интерфейса, включая приложения, использующие игровой движок Unity, тест может завершиться, не пройдя дальше первого экрана.