Вопросы и ответы по AWS Device Farm

Тестирование на реальных мобильных устройствах

Сервис AWS Device Farm позволяет разработчикам улучшить качество приложений, сократить время выхода на рынок и повысить удовлетворенность пользователей путем тестирования приложений и взаимодействия с реальными устройствами с Android или iOS в облаке AWS. Разработчики могут загружать свои приложения и скрипты для тестирования и выполнять автоматизированные тесты параллельно на сотнях реальных устройств, получая результаты, снимки экрана, видео и показатели производительности за считанные минуты. Они также могут заниматься отладкой и воспроизведением проблем пользователей путем касаний и других взаимодействий с устройством через веб-браузер.

Сервис AWS Device Farm предназначен для разработчиков, групп контроля качества и представителей служб поддержки пользователей, т. е. для специалистов, которые занимаются разработкой, тестированием и поддержкой мобильных приложений. Он помогает повысить качество приложений. Качеству приложений придается все большее значение, а достижение качества становится все более сложным из-за большого количества моделей устройств, вариантов прошивок и версий ОС, настроек операторов связи и производителей, а также в силу зависимости от удаленных сервисов и других приложений. Сервис AWS Device Farm позволяет ускорить процесс разработки путем выполнения тестов на множестве устройств, что дает разработчикам, специалистам служб контроля качества и служб поддержки возможность выполнять автоматизированные тесты и проверки вручную, например воспроизводить проблемы пользователей, исследовать новые функциональные возможности и выполнять программы ручного тестирования. AWS Device Farm также обеспечивает значительную экономию средств, избавляя от необходимости поддержания собственных лабораторий устройств, найма менеджеров лабораторий и разработки инфраструктуры автоматизации.

AWS Device Farm поддерживает нативные и гибридные приложения Android и iOS, интернет-приложения, кроссплатформенные приложения, включая приложения, созданные в PhoneGap, Titanium, Xamarin, Unity и других средах разработки.

Тесты AWS Device Farm проводятся на реальных устройствах. Устройства представляют собой комбинацию устройств с настройками производителя и устройств, настроенных для работы с определенным оператором.

Организация тестирования и сеансов удаленного доступа

AWS Device Farm работает в Internet Explorer версии 9 или новее, а также в последних версиях Chrome, Firefox и Safari.

Интернет-приложения тестируются в Chrome при работе в ОС Android и в Safari при работе в iOS.

AWS Device Farm поддерживает файлы до 4 ГБ.

Для использования встроенных тестов не требуется специальная подготовка приложения или предоставление исходного кода. Приложения для Android можно отправлять, не изменяя их. При компоновке приложения iOS в качестве целевого устройства необходимо указать «iOS Device», а не симулятор.

Приложения и тестовые пакеты автоматически удаляются через 30 дней. Журналы, видеозаписи и другие артефакты хранятся в течение 400 дней. Удалить файлы и результаты можно в любое время с помощью консоли AWS Device Farm или API.

После завершения тестирования на каждом устройстве выполняется ряд операций очистки, включая удаление приложений пользователя. Если мы не можем проверить результат удаления приложения или выполнение любого из других шагов очистки, устройство будет полностью удалено и не будет использоваться в дальнейшем.

Мы продолжаем добавлять дополнительные этапы очистки и улучшать процесс очистки, однако сохраняется возможность того, что в некоторых случаях данные между сеансами будут сохраняться, особенно если система устройства используется за пределами контекста приложения. По этой причине, а также поскольку AWS Device Farm выполняет захват видео и ведет журналы действий, происходящих во время использования каждого из устройств, в ходе автоматического тестирования и сеансов удаленного доступа рекомендуется избегать ввода или предоставления конфиденциальных данных, например информации, касающейся учетных записей (учетной записи Google, идентификационной записи Apple ID и др.), личных данных и других сведений, имеющих отношение к безопасности.

В iOS мы заменяем встроенный профиль подготовки профилем подстановки и повторно подписываем приложение. Если вы предоставите вспомогательные данные, мы добавим их к пакету приложения перед его установкой, и они будут присутствовать в изолированной среде приложения. В результате повторной подписи приложения iOS будут удалены некоторые права. Это касается таких элементов, как App Group, Associated Domains, Game Center, HealthKit, HomeKit, Wireless Accessory Configuration, In-App Purchase, Inter-App Audio, Apple Pay, Push Notifications и VPN Configuration & Control.

В Android мы повторно подписываем приложение. Это может привести к нарушению функциональных возможностей, которые зависят от подписи приложения, например повлиять на работу с API Google Maps для Android. Кроме того, это может привести к срабатыванию механизмов защиты от пиратства и взлома, например в продукте DexGuard. Для выполнения встроенных тестов мы можем изменить манифест, чтобы добавить разрешения, необходимые для захвата и сохранения скриншотов.

Выбор устройств

В сервисе AWS Device Farm представлен большой (и постоянно пополняемый) перечень устройств с Android, iOS и Fire OS. Мы добавляем новые популярные устройства по мере их выпуска производителями. Мы также добавляем новые устройства при выходе новых версий ОС. См. список доступных устройств.

В настоящее время у нас имеются устройства из Индии. Мы используем статистику рынка и отзывы клиентов для постоянного обновления списка устройств. Если вы хотите, чтобы мы добавили в этот список дополнительные устройства, сообщите нам об этом.

Устройства для автоматизированного тестирования выбираются из набора, называемого пулом устройств. Некоторые специально отобранные пулы устройств предоставляются автоматически, но у вас есть возможность создавать и свои собственные пулы. Во время выполнения приложения тестирование будет происходить на всех устройствах выбранного пула, которые совместимы с вашим приложением и тестами. Для удаленного доступа вы можете выбрать необходимое устройство по типу, модели, модификации и версии операционной системы. Затем при необходимости вы можете загрузить приложения и другие данные, а также настроить конфигурацию устройства. Затем сервис Device Farm находит доступное устройство, соответствующее вашему запросу, и отображает дисплей устройства в браузере. После этого вы можете взаимодействовать с устройством, захватывать и сохранять скриншоты и видео.

Да, на тестовых устройствах есть ряд приложений, предварительно установленных производителем устройства или оператором.

Да. На всех устройствах имеется подключение Wi-Fi с доступом к Интернету. Если вы используете внутренние системы (т. е. защищенные корпоративным брандмауэром), внесите диапазон IP-адресов 54.244.50.32–54.244.50.63 в список доверенных. Весь трафик устройств будет поступать с этих IP‑адресов.

Возможности проверить фактические варианты подключения к сети оператора связи нет, но для имитации разных типов соединений и условий можно воспользоваться функциональными возможностями моделирования конфигурации сети. При планировании запуска можно выбрать специально подобранный профиль сети, например «3G» или «Lossy LTE», либо создать свой собственный тип, управляя параметрами пропускной способности, джиттера и потерь. Весь трафик Wi-Fi, поступающий от устройства, будет видоизменен и обработан во время тестирования в соответствии с выбранным профилем. Можно также симулировать динамичные среды, изменяя сетевые параметры в скриптах для тестирования.

Нет, устройства не подключены к сети оператора связи, поэтому с них нельзя осуществлять телефонные звонки или отправлять SMS-сообщения.

Да, сервис позволяет использовать обе камеры устройства, как фронтальную, так и заднюю. Из-за способа установки устройств фотографии и видео могут быть темными и размытыми.

Тестирование приложения

Встроенный пакет тестирования совместимости позволяет устанавливать, удалять и запускать приложения, а также выполнять фаззинг (fuzz-testing) приложения.

Фаззинг (фаззинг‑тестирование) используется для тестирования пользовательского интерфейса приложения сразу после запуска. При этом быстро передаются потоки случайных данных, вводимых пользователем (касаний, смахиваний, ввода с клавиатуры), в ваше приложение. Вы можете настроить количество событий, задержку между событиями и начальное число, используемое при генерации случайных событий. Использование одинакового начального числа при разных запусках тестирования приведет к генерации одинаковой последовательности событий.

AWS Device Farm поддерживает тестирование нативных, гибридных и веб-приложений для платформ Android и iOS. По умолчанию поддерживаются следующие фреймворки: Appium Java JUnit, Appium Java TestNG, Appium Python, Appium Ruby, Appium NodeJS, Instrumentation (включая JUnit, Espresso и большинство инструментальных тестов) и XCTest (включая XCUI и KIF). Дополнительные сведения и полный список поддерживаемых платформ см. в нашей документации.

Можно запускать тесты, написанные с помощью Appium Java JUnit, Appium Java TestNG или Appium Python.

Мы всегда производим оценку сред перед добавлением поддержки. Свяжитесь с нами.

Если используется одна из поддерживаемых сред автоматизации, вы получаете полный контроль над ситуацией и можете решать, когда выполнять снимки экрана. Все скриншоты будут автоматически включены в ваши отчеты.

Да, сервисы Google Play установлены на тех устройствах, которые поддерживают их. Сервисы обновляются, как только новые версии становятся доступны.

Нет, на устройствах нет активной учетной записи Google.

AWS Device Farm поддерживает такие среды, как Espresso и Robotium, в которых имеются инструменты записи и воспроизведения сценариев.

Нет, сервис AWS Device Farm автоматически произведет замену профиля обеспечения и заново выполнит подпись вашего приложения, чтобы его можно было развернуть на наших устройствах.

Нет, но вы можете загрузить логи и получить отладочную информацию для стеков локально.

Да, если вы используете ProGuard. Если вы используете DexGuard для борьбы с пиратством, то мы не сможем изменить подпись приложения и выполнить его тестирование.

Несмотря на то что устройства имеют доступ к сети Интернет, мы не можем гарантировать, что рекламные объявления будут отображаться. Мы рекомендуем удалять рекламные объявления из сборок, которые тестируются в AWS Device Farm.

Да. Если вы используете клиент-серверную среду, например Calabash, Appium или UI Automation, можно подключаться к сети Интернет и выполнять ограниченное число команд оболочки на хосте.

Вы можете предоставить архив в формате ZIP объемом до 4 ГБ. В Android он будет извлечен в корневой каталог внешней памяти, а в iOS – в изолированную среду вашего приложения. Файлы расширения (OBB) Android будут автоматически помещены в подходящую папку, которая соответствует используемой версии ОС. Подробные сведения см. в руководстве для разработчиков.

Да, можно выбрать несколько приложений, а также порядок, в котором их необходимо установить. Указанные зависимые приложения будут установлены до начала тестирования.

Да, чтобы проверить порядок выполнения обновления, вы можете загрузить и установить старую версию своего приложения перед установкой и тестированием новой версии.

Да, можно указать координаты широты и долготы, которые будут использоваться для переопределения данных GPS-устройства.

Да, можно указать локаль (например, «en_US»), чтобы переопределить значение локали по умолчанию для устройства.

Система немедленно помещает тесты в очередь на выполнение, и обычно тестирование начинается в течение нескольких минут. Если одно или несколько устройств недоступны, то задание, связанное с тестированием для этих устройств, будет оставаться в очереди, пока они не станут доступны. При этом тестирование на других доступных устройствах будет запущено сразу.

Максимально допустимая продолжительность теста составляет 150 минут. 

Да. В сервисе имеется подключаемый модуль для среды непрерывной интеграции Jenkins и подключаемый модуль Gradle, совместимый с Android Studio. Кроме того, в сервисе AWS Device Farm имеется программная поддержка всех возможностей консоли, в том числе настройки тестов и скачивания результатов выполнения тестов через API. Дополнительную информацию см. в справке по API сервиса AWS Device Farm. Помимо API для доступа к сервису AWS Device Farm можно использовать AWS SDK.

Просмотр результатов

В отчетах о тестировании, предоставляемых сервисом AWS Device Farm, содержится информация об успешном или неудачном выполнении теста, отчеты о сбоях, журналы тестирования, журналы устройств, снимки экранов, видео и показатели производительности. В отчеты включена как подробная информация для каждого устройства, так и высокоуровневые результаты, например количество ошибок определенного типа. Результаты удаленного доступа содержат журналы и видео сеанса.

В отчеты AWS Device Farm включаются все данные, захваченные logcat (для Android) и журналами устройств (для iOS), а также журналы хоста устройства и указанной платформы тестирования.

Если в ходе работы какие‑либо данные записываются в logcat (Android) или журнал устройства (iOS), такие записи журналов будут включены в отчет. AWS Device Farm не собирает никаких нестандартных журналов или других артефактов, хотя позволяет передавать файлы с помощью тестового скрипта, используя интернет-подключение самого устройства или его хоста.

Цены

Плата начисляется поминутно на основании продолжительности тестирования на каждом выбранном устройстве. Бесплатная пробная версия сервиса AWS Device Farm включает 1000 минут использования устройств.* По истечении этого времени взимается плата в размере 0,17 USD за минуту использования устройства. При росте объемов тестирования можно воспользоваться безлимитным тарифным планом, который предусматривает тестирование без ограничений с фиксированной оплатой в размере 250 USD в месяц за одно устройство.

Первые 1000 минут работы с устройствами предоставляются бесплатно. Этот пробный период предоставляется только один раз. После окончания пробного периода вам будет начисляться плата по стандартному тарифу 0,17 USD за минуту использования устройства.

Минута использования устройства – это расчетная единица для выставления счетов. Минуты использования устройства представляют собой значение измерения времени (в минутах) на установку, выполнение и удаление приложения, а также выполнение тестов на каждом устройстве, которое вы выбрали для тестирования. Цена за единицу остается постоянной независимо от устройства, теста и типа приложения. Плата за минуты использования устройства взимается только для тех тестов, которые завершились без каких-либо ошибок, связанных с устройством или системой. Подобно этому, для сеансов удаленного доступа время использования устройств измеряется от момента, когда начинается подготовка устройства по вашим техническим условиям, и до момента удаления всех приложений и данных, переданных вами на устройство.

Вы можете динамически масштабировать использование ресурсов в соответствии с потребностями вашего бизнеса без каких-либо верхних ограничений или предварительных обязательств.

Первые 1000 минут работы с устройствами предоставляются бесплатно.* Это разовая пробная версия, и ею нельзя воспользоваться повторно. После окончания пробного периода вам будет начисляться плата по стандартному тарифу 0,17 USD за минуту использования устройства.

Безлимитные тарифные планы предоставляют возможности неограниченного тестирования и удаленный доступ, цены – от 250 USD в месяц. Цены на безлимитные тарифные планы зависят от количества слотов устройств, приобретенных для каждого типа использования (то есть автоматизированного тестирования или удаленного доступа) и семейства устройств (например, Android или iOS). Стоимость каждого слота составляет 250 USD в месяц. Количество слотов устройств соответствует количеству параллельных операций тестирования.

Например, если вы приобретете десять слотов для автоматизированного тестирования устройств Android и запланируете тестирование на 100 устройствах, сервис Device Farm будет выполнять тесты одновременно не более чем на десяти устройствах, пока все тесты на выбранных вами устройствах не будут завершены. Приобретение большего количества слотов позволит получить конечный результат быстрее. Вне зависимости от количества выполняемых тестов и сеансов удаленного доступа в месяц с вас будет взиматься фиксированная ежемесячная оплата в размере 250 USD за слот устройства. Клиенты могут в любой момент отменить подписку на один или несколько слотов устройств. Отмена вступит в силу со следующей даты продления (дня месяца, в который был куплен первый активный слот устройства). Вы можете приобрести слоты из консоли AWS Device Farm, AWS Command Line Interface (AWS CLI) или API AWS Device Farm. Подробную информацию см. в нашей документации.

Слоты устройств можно добавлять в любое время, они становятся доступны моментально. Кроме того, клиенты могут в любой момент отменить подписку на один или несколько слотов устройств. Отмена вступит в силу со следующей даты продления (дня месяца, в который был куплен первый активный слот устройства).

Да. При создании контрольного прогона можно использовать либо слоты устройств с безлимитным тарифным планом, либо устройства с поминутной тарификацией. Поскольку при поминутной тарификации нет ограничений на количество параллельных тестов, она предоставляет гибкость и возможность выполнять тесты быстрее, чем при использовании слотов устройств.

Частное устройство – это физический инстанс телефона или планшета, используемый только определенным аккаунтом. Частные устройства могут иметь специальные статические конфигурации и работать на специальных образах ОС. Каждое устройство развертывается от имени пользователя и удаляется по истечении подписки.

Каждое частное устройство, связанное с аккаунтом пользователя, считается подпиской на частное устройство. Стоимость месячной подписки составляет от 200 USD/месяц. Она зависит от цены устройства и подразделяется по уровням. После истечения минимального периода времени подписки можно в любое время аннулировать свою подписку. Свяжитесь с нами для получения дополнительной информации.

Да. При выборе устройств перед запуском теста или сеансом удаленного доступа отображаются как частные, так и публичные устройства. Можно также создавать пулы устройств, состоящих одновременно из частных и публичных устройств. Чтобы получить дополнительные сведения о частных устройствах, свяжитесь с нами.

Тестирование в браузерах для настольных компьютеров

Selenium – это платформа с открытым исходным кодом, которая автоматизирует взаимодействие веб-браузеров. Вы можете узнать больше о Selenium здесь.

Device Farm позволяет выполнять тесты Selenium в разных браузерах для настольных компьютеров и с помощью разных версий браузеров, которые доступны в облаке AWS. Чтобы выполнить тестирование Selenium, Device Farm задействует ресурсы клиенты, то есть тесты проводятся на локальных машинах, но при этом с помощью Selenium API вы будете использовать браузеры, которые размешаются на AWS Device Farm.

Ознакомьтесь с руководством по началу работы здесь.

Все браузеры используют инстансы EC2 Windows, размещенные на Microsoft Windows Server.

Список поддерживаемых браузеров для настольных компьютеров и их версий доступен здесь.

Список возможностей Selenium, которые поддерживает Device Farm, доступен здесь.

Device Farm генерирует журналы консоли, журналы веб-драйверов, журналы операций, а также создает видеозаписи всего процесса тестирования. Все эти данные можно использовать для исправления ошибок во время тестов.

Да. Device Farm поддерживает тестирование веб-приложений на реальных мобильных устройствах с помощью Appium. Ознакомьтесь с нашим руководством для разработчиков, чтобы узнать больше о тестировании веб-приложений с помощью Appium. Обратите внимание, что при тестировании с помощью реальных мобильных устройств Device Farm использует собственные ресурсы, поэтому вы должны загрузить свои тесты на серверы этого сервиса.

Все ограничения при использовании этого сервиса опубликованы здесь.

Плата начисляется поминутно на основании продолжительности тестирования на каждом выбранном инстансе для браузера. За каждую минуту использования инстанса для браузера будет взиматься 0,005 USD.

Минута использования инстанса – это единица тарификации для оплаты тестирования с помощью браузеров для настольных компьютеров в AWS Device Farm. С помощью минут использования инстанса измеряется продолжительность тестов для каждого инстанса, который вы выбрали для браузеров. Единица тарификации составляет 0,005 USD и является неизменной величиной, независимо от того, какой браузер или его версию вы используете. За время, которое требуется на запуск, инициализацию и выключение инстанса EC2, где размещен браузер, плата не взимается.