Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Проблема запуска WiniumDriver как с консоля, так и в дженкинсе

winium
jenkins
Теги: #<Tag:0x00007f7b69289d80> #<Tag:0x00007f7b69289b78>

(s.alex) #1

Привет всем! Скажите кто работал с Winium. Дело в том, когда подряд запускаю тесты, будь это с IDE, будь это с Jenkins, прекращается работа Winium Driver

С чем это может быть связанно? Спасибо


(s.alex) #2

Возможно я не прав! Но мне кажется что проблема именно с
логами Cruciatus.log. Провел 4 запуска тестов одних и тех же, на 5 запуск прекратилась работа Winium Driver. После того как в ручную удалил Cruciatus.log - снова 4 запуска тестов прошли.Может из-за того что не перезаписываются логи в этом файле?


(Vasiliy Rakshin) #3

Покажите код запуска самого сервера и тестируемого приложения.


(s.alex) #4

Вот код запуска Winium Driver и запуск виндового калькулятора (стандарт)

options.setApplicationPath("C:\\Windows\\system32\\calc.exe");
        File driverPath = new File("C:\\Users\\Test\\.jenkins\\jobs\\Winium\\winiumDriver\\WiniumDesktopDriver.exe");
        service = new WiniumDriverService.Builder().usingDriverExecutable(driverPath).usingPort(9999).withVerbose(false).buildDesktopService();
        service.start();
        driver = new WiniumDriver(service, options);

(Vasiliy Rakshin) #5

попробуйте с true

а где вы взяли такие хорошие WiniumDriverService и WiniumDriver?


(s.alex) #6

здесь

Поставил true, но опять же воспроизвелась та же ошибка


#7

Провел 4 запуска тестов одних и тех же, на 5 запуск прекратилась работа Winium Driver. После того как в ручную удалил Cruciatus.log - снова 4 запуска тестов прошли.

Воспроизводится при повторении эксперимента раз за разом?


(s.alex) #8

Я бы сказал каждые 4 повторений, в среднем


#9

Отсутсвие стабильности не подходит для извлечения проблемы.
Но вот что возможно важно, как запускается драйвер? Видимо не как exe файл (руками, скриптом)?


(s.alex) #10

Скриптом описано выше


#11

Да, увидел что код запуска уже фигурирует, пропустил.
Вообщем запуск драйвера “руками” это адекватный способ запуска и правильный, соответсвенно. А вот этот джавовый WiniumDriverService видимо имеет бажульку, может быть связанную с версией джавы, не знаю, повод для изучения есть.


(Yurij Litvin) #12

У меня вроде были проблеммы с запуском самого приложения, поэтому тесты в дебаг моде, а WiniumDriver и приложение запускаю jav-ой:

option.setApplicationPath("");
option.setDebugConnectToRunningApp(true);


(s.alex) #13

По результату тестирования я и @SkylineGleb поняли одну вещь, что если использовать

WiniumDriverService.Builder().usingDriverExecutable(driverPath).usingPort(9999).withVerbose(false).buildDesktopService();

то в последующих запусках тестов будет открываться еще одно окно виниума, соответственно и возникает эта ошибка
я переделал свой код и поменял вместо этого кода

options.setApplicationPath("C:\\Windows\\system32\\calc.exe");
    File driverPath = new File("C:\\Users\\Test\\.jenkins\\jobs\\Winium\\winiumDriver\\WiniumDesktopDriver.exe");
    service = new WiniumDriverService.Builder().usingDriverExecutable(driverPath).usingPort(9999).withVerbose(false).buildDesktopService();
    service.start();
    driver = new WiniumDriver(service, options);

я поставил

DesiredCapabilities cap = new DesiredCapabilities();
    cap.setCapability("app", "C:\\Windows\\system32\\calc.exe");
    cap.setCapability("launchDelay", "2");
    WebDriver driver = new RemoteWebDriver(new URL("http://localhost:9999"), cap);

тем самым получается, что достаточно одной сессии для драйвера и не стоит убивать постоянно процесс по завершению