под Jenkins, gradle c testNG & Selenide тесты стартуют тесты черти где

всем привет: столкнулся с проблемой: под Intellij IDEA мой тест свит стартует *(через Gradle) как положено: в отдельном окне и все в порядке.
теперь все тоже самое под Jenkins: окно не поднимается *(такое ощущение что стартует в --headless режиме) и тесты бегут в бекграунде и валятся.

*(надо код вставить и хромдрайвер.лог)

Дженкинс надо запускать из под юзера, а не как системный процесс.

круто. А как? -) у нас тут специфическая конструкция - дженкинс работает под виндой *(мопед не мой)
через Services -> Properties -> Log on Tag -> This Account и вводим юзера?

Нет. надо запускать процесс, через цмд, а не как службу.

Типа такого:

-Xrs  -jar "dir\slave.jar" -jnlpUrl http://server-jenkins.ru/computer/nodename/slave-agent.jnlp -secret 61fedadosfjaih344h321uhoahsdf1d52f6d00dc3f05

Возможно, всё намного проще:

java -jar jenkins.war --httpPort=8080

не, не помогло - все равно стартует в “безбашенном” режиме (–headless), хотя я ему его и не передаю. но хорошая новость в том - что тесты бегают. Кусок хромлога:?
1539813420.017][INFO]: [7e6c67b8eacc53a8ec88bac027a2c273] COMMAND InitSession {
“capabilities”: {
“desiredCapabilities”: {
“browserName”: “chrome”,
“goog:chromeOptions”: {
“args”: [ “–start-maximized”, “–disable-gpu” ],
“extensions”: [ ]
}
},
“firstMatch”: [ {
“browserName”: “chrome”,
“goog:chromeOptions”: {
“args”: [ “–start-maximized”, “–disable-gpu” ],
“extensions”: [ ]
}
} ]
},
“desiredCapabilities”: {
“browserName”: “chrome”,
“goog:chromeOptions”: {
“args”: [ “–start-maximized”, “–disable-gpu” ],
“extensions”: [ ]
}
}
}
[1539813420.022][INFO]: Populating Preferences file: {
“alternate_error_pages”: {
“enabled”: false
},
“autofill”: {
“enabled”: false
},
“browser”: {
“check_default_browser”: false
},
“distribution”: {
“import_bookmarks”: false,
“import_history”: false,
“import_search_engine”: false,
“make_chrome_default_for_user”: false,
“skip_first_run_ui”: true
},
“dns_prefetching”: {
“enabled”: false
},
“profile”: {
“content_settings”: {
“pattern_pairs”: {
"https://
,*": {
“media-stream”: {
“audio”: “Default”,
“video”: “Default”
}
}
}
},
“default_content_setting_values”: {
“geolocation”: 1
},
“default_content_settings”: {
“geolocation”: 1,
“mouselock”: 1,
“notifications”: 1,
“popups”: 1,
“ppapi-broker”: 1
},
“password_manager_enabled”: false
},
“safebrowsing”: {
“enabled”: false
},
“search”: {
“suggest_enabled”: false
},
“translate”: {
“enabled”: false
}
}
[1539813420.030][INFO]: Populating Local State file: {
“background_mode”: {
“enabled”: false
},
“ssl”: {
“rev_checking”: {
“enabled”: false
}
}
}
[1539813420.057][INFO]: Cannot switch to US keyboard layout - some keys may be interpreted incorrectly
[1539813420.057][INFO]: Launching chrome: “C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-gpu --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --ignore-certificate-errors --load-extension=“C:\Windows\TEMP\scoped_dir15976_3547\internal” --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=0 --start-maximized --test-type=webdriver --use-mock-keychain --user-data-dir=“C:\Windows\TEMP\scoped_dir15976_10395” data:,
[1539813420.271][DEBUG]: DevTools HTTP Request: http://localhost:57512/json/version
[1539813420.646][DEBUG]: DevTools HTTP Response: {

“Browser”: “Chrome/70.0.3538.67”,

“Protocol-Version”: “1.3”,

“User-Agent”: “Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36”,

“V8-Version”: “7.0.276.28”,

“WebKit-Version”: “537.36 (@9ab0cfab84ded083718d3a4ff830726efd38869f)”,

“webSocketDebuggerUrl”: “ws://localhost:57512/devtools/browser/f90a6030-fe67-4e93-bf45-e72bfbcef533”

}

кто сталкивался с таким?

Надо сделать батник, в который написать команду запуска Дженкинса, её как раз взять из настройки сервиса. И сделать задачу на запуск этого батника при входе пользователя на машину. То как сейчас у вас запускается Дженкинс - это тоже теперь нормально, если вы используете Хеадлесс режим явно, и устанавливаете нужное вам разрешение. Без этого у вас браузер работает с 800х600, это вас разве устроит?

1 лайк

я же говорю что хедлесс не используется и лог привел “args”: [ “–start-maximized”, “–disable-gpu” ], наоборот хочу чтобы он стартовал в максимизированном режиме, а веб морда браузера не появляется

А я и не говорю, что вы его используете/включаете (явно - это указывать настройку Хеадлесс). Это хром такой умный, что всё-равно работает.
Вы для проверки - остановите Дженкинс, остановите службу, запустите руками дженкинс - и увидите запускающийся браузер.

На всякий, надо не дженкинс как приложение запускать, а агент на котором будут запускаться тесты. Вряд ли у вас в организации, только slave сборщик

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

не поверите - пока справляемся на одном мастере - до слейвов еще не дошли. в будущем - скорее всего дойдем

Не поможет). Вам же написали ясно вроде), нужно запускать агент (ну в вашем случае master) как приложение, т.е. стартовать джарник. Я 100 лет правда уже с дженкинсом не работал, хз, как там обойти чтобы новый инстанс не стартовал, но наверняка можно нагуглить, но в принципе вам ничего не мешает отдельный агент под тесты подключить и его запустить как приложение.

Тут проблема в том что Дженкинс можно ставить разными путями. Для меня на винде, самый гибкий - это на Томкат. Я почитал, если стартовать просто джарник - то никак нельзя подсунуть уже настроенные конфиги от старой настройки.

Ну значит просто сделать еще один агент, хоть на той же машине запустите, делов на 10 минут

Кстати, вроде, всё-таки там в настройках сервиса по другому Дженкинс запускается, посмотрите лучше, там не джарник запускается, должно сработать.

Не поленился - поднял еще один агент - итог: банана! работает также как и до этого. подозреваю что проблема в этом куске кода:
@BeforeSuite
public void initSuite(){
ChromeDriverManager.getInstance().setup();
ChromeOptions options = new ChromeOptions();
List<String> webdriverOptions = Arrays.asList(System.getProperty(“webdriver.options”).split(";"));
options.addArguments(webdriverOptions);
WebDriver driver = new ChromeDriver(options);
WebDriverRunner.setWebDriver(driver);
}

ну и собственно в списке подсовываю ему опции какие мне нужны *(видно опять-таки из хромлога что хедлеса нет там). ну или какие то параметры для текущей версии вебдрайвера не подходят - в смылсе он сам дефектный ну или винда ему не нравитсо. вот такая вот фигня, ребзя

ну по крайней мере одну проблему исключили. А если из командной строки на этой машине тесты запустить, точно такой же командой как вы это в степе джобы делаете, то что будет?

Вообщем, после нескольких часов вывод такой: дело в gradle. И под системным юзером и под своим локальным инстансом когда запускаю через wrapper *(и в настройках джобы соотв-но), т.е. graglew.bat - все заводится как надо: и хром стартует и опции подтягиваются. А вот если использую локальную версию грейдел.бат *(пробовал версию 4.6 и 4.10), то банана *(у меня по умолчанию 4.6 стоял батник). Есть какое-то объяснение этому?