- Инструменты для разработчиков›
- AWS Device Farm›
- Вопросы и ответы
Вопросы и ответы по AWS Device Farm
Тестирование на реальных мобильных устройствах
Что представляет собой сервис AWS Device Farm?
Сервис AWS Device Farm позволяет разработчикам улучшить качество приложений, сократить время выхода на рынок и повысить удовлетворенность пользователей путем тестирования приложений и взаимодействия с реальными устройствами с Android или iOS в облаке AWS. Разработчики могут загружать свои приложения и скрипты для тестирования и выполнять автоматизированные тесты параллельно на сотнях реальных устройств, получая результаты, снимки экрана, видео и показатели производительности за считанные минуты. Они также могут заниматься отладкой и воспроизведением проблем пользователей путем касаний и других взаимодействий с устройством через веб-браузер.
Кому и в каких целях стоит использовать сервис AWS Device Farm?
Сервис AWS Device Farm предназначен для разработчиков, групп контроля качества и представителей служб поддержки пользователей, т. е. для специалистов, которые занимаются разработкой, тестированием и поддержкой мобильных приложений. Он помогает повысить качество приложений. Качеству приложений придается все большее значение, а достижение качества становится все более сложным из-за большого количества моделей устройств, вариантов прошивок и версий ОС, настроек операторов связи и производителей, а также в силу зависимости от удаленных сервисов и других приложений. Сервис AWS Device Farm позволяет ускорить процесс разработки путем выполнения тестов на множестве устройств, что дает разработчикам, специалистам служб контроля качества и служб поддержки возможность выполнять автоматизированные тесты и проверки вручную, например воспроизводить проблемы пользователей, исследовать новые функциональные возможности и выполнять программы ручного тестирования. AWS Device Farm также обеспечивает значительную экономию средств, избавляя от необходимости поддержания собственных лабораторий устройств, найма менеджеров лабораторий и разработки инфраструктуры автоматизации.
Какие типы приложений поддерживает сервис AWS Device Farm?
AWS Device Farm поддерживает нативные и гибридные приложения Android и iOS, интернет-приложения, кроссплатформенные приложения, включая приложения, созданные в PhoneGap, Titanium, Xamarin, Unity и других средах разработки.
Используются ли в сервисе AWS Device Farm симуляторы или эмуляторы?
Тесты AWS Device Farm проводятся на реальных устройствах. Устройства представляют собой комбинацию устройств с настройками производителя и устройств, настроенных для работы с определенным оператором.
Организация тестирования и сеансов удаленного доступа
Как начать работу с сервисом AWS Device Farm?
Какие браузеры поддерживает консоль 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? Как вы подбираете устройства для включения в список?
В сервисе AWS Device Farm представлен большой (и постоянно пополняемый) перечень устройств с Android, iOS и Fire OS. Мы добавляем новые популярные устройства по мере их выпуска производителями. Мы также добавляем новые устройства при выходе новых версий ОС. См. список доступных устройств.
Есть ли в сервисе AWS Device Farm устройства из других стран – Европы, Китая или Индии?
В настоящее время у нас имеются устройства из Индии. Мы используем статистику рынка и отзывы клиентов для постоянного обновления списка устройств. Если вы хотите, чтобы мы добавили в этот список дополнительные устройства, сообщите нам об этом.
Как выбрать устройства для тестирования? Можно ли выполнять повторное тестирование на том же устройстве?
Устройства для автоматизированного тестирования выбираются из набора, называемого пулом устройств. Некоторые специально отобранные пулы устройств предоставляются автоматически, но у вас есть возможность создавать и свои собственные пулы. Во время выполнения приложения тестирование будет происходить на всех устройствах выбранного пула, которые совместимы с вашим приложением и тестами. Для удаленного доступа вы можете выбрать необходимое устройство по типу, модели, модификации и версии операционной системы. Затем при необходимости вы можете загрузить приложения и другие данные, а также настроить конфигурацию устройства. Затем сервис Device Farm находит доступное устройство, соответствующее вашему запросу, и отображает дисплей устройства в браузере. После этого вы можете взаимодействовать с устройством, захватывать и сохранять скриншоты и видео.
Имеются ли на тестовых устройствах в сервисе AWS Device Farm какие‑либо предустановленные приложения?
Да, на тестовых устройствах есть ряд приложений, предварительно установленных производителем устройства или оператором.
Могут ли устройства взаимодействовать с другими сервисами или системами, доступными через Интернет?
Да. На всех устройствах имеется подключение Wi-Fi с доступом к Интернету. Если вы используете внутренние системы (т. е. защищенные корпоративным брандмауэром), внесите диапазон IP-адресов 54.244.50.32–54.244.50.63 в список доверенных. Весь трафик устройств будет поступать с этих IP‑адресов.
Можно ли проверить различные варианты и условия подключения к сети оператора связи?
Возможности проверить фактические варианты подключения к сети оператора связи нет, но для имитации разных типов соединений и условий можно воспользоваться функциональными возможностями моделирования конфигурации сети. При планировании запуска можно выбрать специально подобранный профиль сети, например «3G» или «Lossy LTE», либо создать свой собственный тип, управляя параметрами пропускной способности, джиттера и потерь. Весь трафик Wi-Fi, поступающий от устройства, будет видоизменен и обработан во время тестирования в соответствии с выбранным профилем. Можно также симулировать динамичные среды, изменяя сетевые параметры в скриптах для тестирования.
Можно ли совершать телефонные звонки или отправлять SMS‑сообщения с тестовых устройств?
Нет, устройства не подключены к сети оператора связи, поэтому с них нельзя осуществлять телефонные звонки или отправлять 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.
Можете ли вы добавить поддержку измененной среды или среды, самостоятельно разработанной мною?
Мы всегда производим оценку сред перед добавлением поддержки. Свяжитесь с нами.
Каким образом сервис AWS Device Farm принимает решение о том, в какой момент тестирования выполнять снимок экрана?
Если используется одна из поддерживаемых сред автоматизации, вы получаете полный контроль над ситуацией и можете решать, когда выполнять снимки экрана. Все скриншоты будут автоматически включены в ваши отчеты.
Доступны ли сервисы Google Play на устройствах Android? Какая версия установлена?
Да, сервисы Google Play установлены на тех устройствах, которые поддерживают их. Сервисы обновляются, как только новые версии становятся доступны.
Имеется ли на устройствах с Android аккаунт Google, используемый по умолчанию?
Нет, на устройствах нет активной учетной записи Google.
Поддерживает ли сервис AWS Device Farm автоматизированную запись и воспроизведение или требуется писать собственные скрипты?
AWS Device Farm поддерживает такие среды, как Espresso и Robotium, в которых имеются инструменты записи и воспроизведения сценариев.
Требуется ли в iOS добавлять идентификаторы UDID сервиса к профилю подготовки?
Нет, сервис AWS Device Farm автоматически произведет замену профиля обеспечения и заново выполнит подпись вашего приложения, чтобы его можно было развернуть на наших устройствах.
Мое приложение для iOS не содержит отладочных символов. Можно ли предоставить файл dSYM сервису AWS Device Farm?
Нет, но вы можете загрузить логи и получить отладочную информацию для стеков локально.
В моем приложении для Android используется обфускация. Могу ли я в этом случае протестировать его в AWS Device Farm?
Да, если вы используете ProGuard. Если вы используете DexGuard для борьбы с пиратством, то мы не сможем изменить подпись приложения и выполнить его тестирование.
Мое приложение включает показ рекламы. Будет ли она отображаться на ваших устройствах? Не оценит ли мой поставщик рекламных объявлений такой показ как нарушение и не запретит ли дальнейшее использование моего аккаунта?
Несмотря на то что устройства имеют доступ к сети Интернет, мы не можем гарантировать, что рекламные объявления будут отображаться. Мы рекомендуем удалять рекламные объявления из сборок, которые тестируются в AWS Device Farm.
Можно ли в процессе тестирования получить доступ к компьютеру, к которому подключено устройство (или к его оболочке)? Можно ли выходить в сеть Интернет с ее помощью?
Да. Если вы используете клиент-серверную среду, например Calabash, Appium или UI Automation, можно подключаться к сети Интернет и выполнять ограниченное число команд оболочки на хосте.
Мне необходимо предоставить своему приложению мультимедийные или другие данные. Как мне это сделать?
Вы можете предоставить архив в формате ZIP объемом до 4 ГБ. В Android он будет извлечен в корневой каталог внешней памяти, а в iOS – в изолированную среду вашего приложения. Файлы расширения (OBB) Android будут автоматически помещены в подходящую папку, которая соответствует используемой версии ОС. Подробные сведения см. в руководстве для разработчиков.
Для тестирования всех функциональных возможностей моего приложения требуются зависимые приложения. Можно ли устанавливать другие приложения?
Да, можно выбрать несколько приложений, а также порядок, в котором их необходимо установить. Указанные зависимые приложения будут установлены до начала тестирования.
Можно ли протестировать процесс обновления моего приложения? Как мне установить старую версию моего приложения?
Да, чтобы проверить порядок выполнения обновления, вы можете загрузить и установить старую версию своего приложения перед установкой и тестированием новой версии.
Мое приложение использует сервисы определения местоположения. Можно ли указать физическое местоположение устройства?
Да, можно указать координаты широты и долготы, которые будут использоваться для переопределения данных GPS-устройства.
Можно ли запускать тесты, связанные с локализацией? Как изменить язык устройства?
Да, можно указать локаль (например, «en_US»), чтобы переопределить значение локали по умолчанию для устройства.
Сколько потребуется времени, чтобы запустить тесты?
Система немедленно помещает тесты в очередь на выполнение, и обычно тестирование начинается в течение нескольких минут. Если одно или несколько устройств недоступны, то задание, связанное с тестированием для этих устройств, будет оставаться в очереди, пока они не станут доступны. При этом тестирование на других доступных устройствах будет запущено сразу.
Каковы ограничения по максимальной продолжительности теста?
Максимально допустимая продолжительность теста составляет 150 минут.
Позволяет ли сервис AWS Device Farm использовать API для выполнения тестов и получения результатов?
Да. В сервисе имеется подключаемый модуль для среды непрерывной интеграции Jenkins и подключаемый модуль Gradle, совместимый с Android Studio. Кроме того, в сервисе AWS Device Farm имеется программная поддержка всех возможностей консоли, в том числе настройки тестов и скачивания результатов выполнения тестов через API. Дополнительную информацию см. в справке по API сервиса AWS Device Farm. Помимо API для доступа к сервису AWS Device Farm можно использовать AWS SDK.
Просмотр результатов
Какая информация содержится в отчете о тестировании, предоставляемом сервисом AWS Device Farm?
В отчетах о тестировании, предоставляемых сервисом AWS Device Farm, содержится информация об успешном или неудачном выполнении теста, отчеты о сбоях, журналы тестирования, журналы устройств, снимки экранов, видео и показатели производительности. В отчеты включена как подробная информация для каждого устройства, так и высокоуровневые результаты, например количество ошибок определенного типа. Результаты удаленного доступа содержат журналы и видео сеанса.
Какие журналы устройств включаются в отчеты, предоставляемые сервисом AWS Device Farm?
В отчеты AWS Device Farm включаются все данные, захваченные logcat (для Android) и журналами устройств (для iOS), а также журналы хоста устройства и указанной платформы тестирования.
Мои тесты создают и сохраняют дополнительные файлы журналов. Будут ли эти данные представлены в отчетах AWS Device Farm?
Если в ходе работы какие‑либо данные записываются в logcat (Android) или журнал устройства (iOS), такие записи журналов будут включены в отчет. AWS Device Farm не собирает никаких нестандартных журналов или других артефактов, хотя позволяет передавать файлы с помощью тестового скрипта, используя интернет-подключение самого устройства или его хоста.
Цены
Сколько стоит использование сервиса 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 – это платформа с открытым исходным кодом, которая автоматизирует взаимодействие веб-браузеров. Вы можете узнать больше о Selenium здесь.
Как происходит тестирование в браузерах для настольных компьютеров в AWS Device Farm?
Device Farm позволяет выполнять тесты Selenium в разных браузерах для настольных компьютеров и с помощью разных версий браузеров, которые доступны в облаке AWS. Чтобы выполнить тестирование Selenium, Device Farm задействует ресурсы клиенты, то есть тесты проводятся на локальных машинах, но при этом с помощью Selenium API вы будете использовать браузеры, которые размешаются на AWS Device Farm.
Как начать тестирование в браузерах для настольных компьютеров в AWS Device Farm?
Ознакомьтесь с руководством по началу работы здесь.
Какие операционные системы используются для работы браузеров?
Все браузеры используют инстансы EC2 Windows, размещенные на Microsoft Windows Server.
Какие браузеры для настольных компьютеров поддерживает AWS Device Farm?
Список поддерживаемых браузеров для настольных компьютеров и их версий доступен здесь.
Какие возможности поддерживает AWS Device Farm?
Список возможностей Selenium, которые поддерживает Device Farm, доступен здесь.
Какие артефакты доступны для исправления ошибок во время тестирования?
Device Farm генерирует журналы консоли, журналы веб-драйверов, журналы операций, а также создает видеозаписи всего процесса тестирования. Все эти данные можно использовать для исправления ошибок во время тестов.
Можно ли использовать AWS Device Farm для тестирования веб-приложений с помощью реальных мобильных устройств?
Да. Device Farm поддерживает тестирование веб-приложений на реальных мобильных устройствах с помощью Appium. Ознакомьтесь с нашим руководством для разработчиков, чтобы узнать больше о тестировании веб-приложений с помощью Appium. Обратите внимание, что при тестировании с помощью реальных мобильных устройств Device Farm использует собственные ресурсы, поэтому вы должны загрузить свои тесты на серверы этого сервиса.
Какие ограничения существуют при тестировании с помощью браузеров для настольных компьютеров в AWS Device Farm?
Все ограничения при использовании этого сервиса опубликованы здесь.
Сколько стоит тестирование с помощью браузеров для настольных компьютеров в AWS Device Farm?
Плата начисляется поминутно на основании продолжительности тестирования на каждом выбранном инстансе для браузера. За каждую минуту использования инстанса для браузера будет взиматься 0,005 USD.
Что такое минута использования инстанса?
Минута использования инстанса – это единица тарификации для оплаты тестирования с помощью браузеров для настольных компьютеров в AWS Device Farm. С помощью минут использования инстанса измеряется продолжительность тестов для каждого инстанса, который вы выбрали для браузеров. Единица тарификации составляет 0,005 USD и является неизменной величиной, независимо от того, какой браузер или его версию вы используете. За время, которое требуется на запуск, инициализацию и выключение инстанса EC2, где размещен браузер, плата не взимается.