Как обрабатывать окна предупреждений в Amazon Device Farm / w Appium

В настоящее время я пробую Amazon Device Farm и смог заставить работать фиктивное приложение.

Однако, когда я попытался получить реальное приложение, которое хочу начать работать на ферме устройств Amazon, я не смог этого сделать. Я могу загрузить файл .ipa, заархивировать и загрузить тесты py.tests / appium с их зависимостями, однако тесты терпят неудачу.

Я думаю, что может происходить то, что ADF не распознает некоторые из Desired_capabilities, чтобы автоматически отклонять предупреждения для уведомлений и координаты GPS.

Моя настройка очень похожа на настройку, которую я использовал с фиктивным приложением в моих первоначальных тестах. (они работали с фермой устройств Amazon) https://github.com/dlai0001/appium-spike-running-tests-oncloud

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

Harness 00:00.0 1295 Info Starting 00001 with device c00e8ab68437161b894395e438ba8935a672bac0
Harness 00:00.0 1295 Info Using test content version 0.1.0
Harness 00:00.1v1295 Info Using image version ami-778b7c17

person David Lai    schedule 13.04.2016    source источник


Ответы (1)


Я работаю в команде Amazon Device Farm.

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

  2. Appium работает с autoAcceptAlerts = true на ферме устройств. Это должно обрабатывать окна предупреждений, если они есть, если только это не всплывающее окно системы, которое autoAcceptAlert не может обработать. Вы должны проверить, могут ли ваши тесты обрабатывать окна предупреждений, используя autoAcceptAlerts = true в режиме предварительного запуска Appium локально. Если он может справиться с этим, ферма устройств должна вести себя так же. Иногда может случиться так, что окно предупреждения появляется до того, как сеанс appium установлен, и в этом случае может помочь добавление задержки.

  3. При локальном тестировании используйте Appium версии 1.4.16, поскольку именно эта версия сейчас используется на ферме устройств.

person NikofTime    schedule 13.04.2016
comment
Привет, спасибо за ответ. Я попробую добавить еще ожидания. Код работает на моей стороне локально, используя appium 1.14.13 (загруженный с сайта appium). Я также пробовал использовать 1.14.16 на других фермах сторонних устройств на имитируемых устройствах. - person David Lai; 13.04.2016
comment
Это мои желаемые возможности. желаемый_caps = {autoAcceptAlerts: True, # Установить на автоматическое принятие диалогов, чтобы предотвратить блокирующие тесты. sendKeyStrategy: grouped} wd = webdriver.Remote ('0.0.0.0:4723/wd/hub ', desire_caps) wd.implicitly_wait (60) # Добавить долгое ожидание, чтобы учесть медлительность или удаленные сети. - person David Lai; 13.04.2016
comment
Вам не нужно передавать желаемые возможности, чтобы ферма устройств работала с ним. Он уже работает с autoAcceptAlert = true. Он не принимает желаемые возможности sendKeyStrategy: сгруппированные. Также истинная мера тайм-аутов будет на реальном устройстве. Вы упомянули, что тестировали его на смоделированных устройствах? - person NikofTime; 19.04.2016
comment
Я тестировал его на моделированном устройстве локально. Насколько я могу судить, это похоже на системное всплывающее окно для геолокации и уведомлений, которое появляется до полного запуска приложения. Я попытался добавить вызовы .switch_to.alert.dismiss (), однако это не удалось на этапе создания самого RemoteWebdriver. - person David Lai; 20.04.2016
comment
Поскольку тесты проводятся на реальных устройствах на ферме устройств, можете ли вы проверить, наблюдаете ли вы такое же поведение на реальном локальном устройстве? Результаты на тренажере могут отличаться от реальных. Также вы используете Appium 1.4.16 локально, поскольку эта версия в настоящее время используется на ферме устройств. - person NikofTime; 28.04.2016
comment
Если вы нашли ответ, примите его, чтобы другие могли извлечь из него пользу. - person NikofTime; 06.06.2017