периодически возникающий appium неизвестная ошибка на стороне сервера - PullRequest
0 голосов
/ 10 марта 2020

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

server1
Host-0.0.0.0
server port-5050
Bootstrap port- 4734
allow session overrides- ticked

server2
Host-0.0.0.0
server port-4723
Bootstrap port- 4724
allow session overrides- ticked

версия appium - 1.15.1

List of devices attached-
52002dd24392b5a1        device
5200472dec01a4a9        device

ошибка на консоли сервера appium -

  W3C] Encountered internal error running command: Error: Cannot start the 'com.XYZ.XYZ' application. Visit https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md for troubleshooting. Original error: Error executing adbExec. Original error: 'Command ''C:\\Users\\XYZ\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe' -P 5037 -s 5200472dec01a4a9 shell am start -W -n com.XYZ.XYZ/host.exp.exponent.LauncherActivity -S' timed out after 120000ms'. Try to increase the 120000ms adb execution timeout represented by 'adbExecTimeout' capability
    [W3C]     at ADB.startApp (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-adb\lib\tools\apk-utils.js:153:11)
    [HTTP] <-- POST /wd/hub/session 500 132866 ms - 1782
    [HTTP] 
    [Instrumentation] .
    [Instrumentation] Time: 123.085
    [Instrumentation] 
    [Instrumentation] OK (1 test)
    [Instrumentation] The process has exited with code 0

ошибка IDE-

org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original error: Cannot start the 'com.XYZ.XYZ' application. Visit https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md for troubleshooting. Original error: Error executing adbExec. Original error: 'Command ''C:\\Users\\XYZ\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe' -P 5037 -s 5200472dec01a4a9 shell am start -W -n com.XYZ.XYZ/host.exp.exponent.LauncherActivity -S' timed out after 120000ms'. Try to increase the 120000ms adb execution timeout represented by 'adbExecTimeout' capability
Driver info: driver.version: AndroidDriver
remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: Cannot start the 'com.XYZ.XYZ' application. Visit https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md for troubleshooting. Original error: Error executing adbExec. Original error: 'Command ''C:\\Users\\XYZ\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe' -P 5037 -s 5200472dec01a4a9 shell am start -W -n com.XYZ.XYZ/host.exp.exponent.LauncherActivity -S' timed out after 120000ms'. Try to increase the 120000ms adb execution timeout represented by 'adbExecTimeout' capability

требуемые возможности для устройства1-

 DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "Tab");
        capabilities.setCapability("platformVersion", "8.0.0");
        capabilities.setCapability("platformName", "ANDROID");
        capabilities.setCapability("udid", "5200472dec01a4a9");
        capabilities.setCapability("noReset", "true");
        capabilities.setCapability("appPackage", "com.xyz.xyz");
        capabilities.setCapability("appActivity", "host.exp.exponent.LauncherActivity");
        capabilities.setCapability("adbExecTimeout", 120000);
        capabilities.setCapability("newCommandTimeout", 3000);
        capabilities.setCapability("noSign", "true");
        URL mobileURL = new URL("http://0.0.0.0:5050/wd/hub");
        mobileParent = new AndroidDriver(mobileURL, capabilities);

мобильные возможности для устройства2-

 capabilities.setCapability("deviceName", "Tab");
        capabilities.setCapability("platformVersion", "8.0.0");
        capabilities.setCapability("platformName", "ANDROID");
        capabilities.setCapability("udid", "52002dd24392b5a1");
        capabilities.setCapability("noReset", "true");
        capabilities.setCapability("appPackage", "com.coachhire.kura");
        capabilities.setCapability("appActivity", "host.exp.exponent.LauncherActivity");
        capabilities.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS, true);
        capabilities.setCapability("adbExecTimeout", 120000);
        capabilities.setCapability("newCommandTimeout", 3000);
        capabilities.setCapability("noSign", "true");
        URL mobileURL = new URL("http://0.0.0.0:4723/wd/hub");
        mobileDriver = new AndroidDriver(mobileURL, capabilities);

любая помощь значительно оценена!

1 Ответ

1 голос
/ 11 марта 2020

Глядя на предоставленные вами данные, ошибок быть не должно. Это должно работать нормально.

Неизвестная ошибка обычно возникает, когда Appium не может выяснить список возможностей, предоставленных для запуска. Я бы посоветовал дважды проверить правильность данных appPackage и appActivity.

Также попробуйте запустить тесты на одном устройстве и увидеть все ошибки. увидеть последовательность тестового прогона. Если нет ошибок, то вы можете добавить еще одно устройство и посмотреть, как оно работает.

Добавьте ниже в списке возможностей:

"automationName": "UiAutomator2"

Если вы запускаете тест на локальной машине, используйте http://127.0.0.1:<Port>/wd/hub вместо 0.0.0.0

Если вы выполняете тесты удаленно, выполните в приведенном выше примере локальный IP 127.0.0.0 заменен IP-адресом компьютера, на котором работает сервер Appium.

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

Для настройки устройства ma c выполните следующие действия: https://www.swtestacademy.com/how-to-install-appium-on-mac/

Попробуйте выполнить следующие действия,

Проверьте, можете ли вы установить приложение вручную выполнив следующую команду.

 adb -P <port> -s <device id > shell pm install -t -g <apk path>

Если это может сработать, это означает, что с устройством нет проблем. В противном случае вам следует перезагрузить устройство и повторно протестировать его.

Убедитесь, что сервер Appium работает без проблем. и перейдите по этой ссылке и увидите ответ 200 на консоли сервера Appium.

http://<appium server ip>:4723/wd/hub/sessions

Если вы видите там ошибку, это указывает на проблему с Appium. Удалите и установите стабильную версию Appium и повторите тестирование.

Вы должны знать, что иногда Node.js не может разговаривать с 127.0.0.1:4723, поэтому используйте 0.0.0.0:4723 вместо этого и наоборот. Не забудьте изменить это как в коде (DesiredCapabilities), так и в настройках appium.

Попробуйте параметр "udid" для требуемых возможностей -

Пример, caps.setCapability("udid", "ce0217124184c72505"); // DeviceId из "adb devices" команда

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