Appium push для реального устройства iOS (на AWS) не работает

avatar
Jano
9 августа 2021 в 07:04
187
0
0

Я пытаюсь передать некоторые изображения на свое устройство iOS (то есть на ферму устройств AWS)

Метод push работает для симулятора iOS, но при запуске на AWS возникает исключение тайм-аута.

Размер изображения относительно небольшой (просто случайное изображение в качестве теста)

Это ошибка, которую я получаю при отправке из фермы устройств AWS:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Could not push the file within the given timeout 60000ms. Original error: operation timed out

Код для отправки изображения выглядит следующим образом:

    String fileName = "testFile.jpeg";
    File imageToPush = getImgFromUrl(fileName);
    try{
        driver.pushFile(fileName,imageToPush);

        System.out.println("\n\n---IMAGE Push Successful---");
    } catch (Exception e){
        System.out.println("\n\nFailed to upload image to device\n\n");
        System.out.println("\n\nReason:\n\n" + e.getMessage());
    }

Этот фрагмент работает для симулятора iOS.

Возвращает исключение тайм-аута для устройства iOS в ферме устройств AWS. Как заставить его работать?

Источник
Tobe E
13 августа 2021 в 23:11
0

Есть некоторые проблемы совместимости с командой driver.pushFile(..). Можете ли вы убедиться, что устройство и версия Appium, на которой вы работаете, совместимы? Кроме того, можете ли вы проверить, действительно ли файл существует там, где вы его ожидаете, на удаленном хосте?

Jano
16 августа 2021 в 06:52
0

Эй, спасибо за ваш комментарий, файл существует, это точно, ради его тестирования я загружаю изображение из Интернета, которое тоже работало на симуляторе, так что проблема действительно с pushFile(..) на AWS: версия Appium: APPIUM_VERSION=1.19.0. Используемое устройство — Apple iPhone 12.

Tobe E
17 августа 2021 в 19:28
0

Что показывают ваши журналы appium? Можете ли вы обновить вопрос с помощью pastebin из них? Кроме того, какие версии WDA AWS Device Farm вы используете?

Jano
23 августа 2021 в 07:27
0

Эй, я не уверен, где найти версию WDA. (Полезный) журнал appium прямо в вопросе, до этого нет соответствующей информации.

Tobe E
23 августа 2021 в 17:49
0

Он определен в файле .yml, который вы используете.

Jano
25 августа 2021 в 08:08
0

Я не очень хорошо знаком с этим сценарием. Если я правильно его понимаю (он использует много if-s, но я думаю, что это шаблон по умолчанию). В случае appium 1.19 он переходит к $DEVICEFARM_WDA_DERIVED_DATA_PATH_V6, который является v2.20.8 для WebDriverAgent

Tobe E
26 августа 2021 в 23:21
0

Что показывают ваши журналы Appium?

Jano
27 августа 2021 в 07:27
0

В логах, которые у нас есть, он показывает только логи с фермы устройств и testng/огурец. Если нет ошибки, мы получаем трассировку стека, и для этого я предоставил единственную соответствующую строку (исключение тайм-аута). Есть ли способ добавить к этому журналы сервера appium? если да, то я постараюсь сделать это завтра и предоставлю логи

Tobe E
3 сентября 2021 в 17:47
0

AWS Device Farm предоставляет журналы для всего, что находится в папке $DEVICEFARM_LOG_DIR. Если вы используете один из примеров файлов testpec для appium, он включает файл appium.txt для журналов Appium. Он будет отображаться в файле .zip на консоли в разделе Файлы > Набор тестов > Артефакты клиента для выбранного задания.

Ответы (0)