t.me/atinfo_chat Telegram группа по автоматизации тестирования

Не запускается браузер и валятся тесты при запуске через Jenkins

infrastructure
jenkins
maven
java
selenium
testng
webdriver
Теги: #<Tag:0x00007f21d572a9e0> #<Tag:0x00007f21d572a8a0> #<Tag:0x00007f21d572a760> #<Tag:0x00007f21d572a620> #<Tag:0x00007f21d572a440> #<Tag:0x00007f21d572a300> #<Tag:0x00007f21d572a1c0>

(Dmitry.K) #1

Настроили запуск автотестов через Jenkins (java+testng+maven+selenium)
Для первых проверок подняли виртуалку win10 с GUI, установили джаву. Поставили хром и хромдрайвер
ChromeDriver 76.0.3809.68
chrome 76.0.3809.87

Подключился на удаленный просмотр виртуалки. Запускаю джобу в дженкинсе. Билдится, в лог выводит что хромдрайвер запущен. В диспечере задач на виртуалке появляются запущенные процессы хрома, но сам браузер не открывается, а тесты валятся при попытке кликнуть на первый же элемент:
org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element is not clickable at point (1144, 45)

Вот лог дженкинса:

LOG
c:\Jenkins\workspace\QA\autotest2&gt;c:\jenkins\maven\bin\mvn.cmd clean test -Dsurefire.suiteXmlFiles=testng.xml

**10:45:35** [INFO] Scanning for projects... **10:45:35** [INFO] **10:45:35** [INFO] ---------------------------&lt; my_project:my_project &gt;---------------------------- **10:45:35** [INFO] Building my_project 1.0-SNAPSHOT **10:45:35** [INFO] --------------------------------[ jar ]---------------------------------

**10:45:40** [INFO] **10:45:40** [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ my_project --- **10:45:40** [INFO] Deleting c:\Jenkins\workspace\QA\autotest2\target **10:45:40** [INFO] **10:45:40** [INFO] --- maven-install-plugin:3.0.0-M1:install-file (default) @ my_project ---

**10:45:43** [INFO] pom.xml not found in MonteScreenRecorder.jar **10:45:43** [INFO] Installing c:\Jenkins\workspace\QA\autotest2\lib\MonteScreenRecorder.jar to C:\Users\QA\.m2\repository\org\monte\monte-screen-recorder\0.7.7\monte-screen-recorder-0.7.7.jar **10:45:43** [INFO] **10:45:43** [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ my_project --- **10:45:43** [INFO] Using 'UTF-8' encoding to copy filtered resources. **10:45:45** [INFO] Copying 2 resources **10:45:45** [INFO] **10:45:45** [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ my_project ---

**10:45:45** [INFO] Changes detected - recompiling the module! **10:45:45** [INFO] Compiling 27 source files to c:\Jenkins\workspace\QA\autotest2\target\classes

**10:45:45** [INFO] **10:45:45** [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ my_project --- **10:45:45** [INFO] Using 'UTF-8' encoding to copy filtered resources. **10:45:46** [INFO] skip non existing resourceDirectory c:\Jenkins\workspace\QA\autotest2\src\test\resources **10:45:47** [INFO] **10:45:58** [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ my_project --- **10:45:58** [INFO] Changes detected - recompiling the module! **10:45:58** [INFO] Compiling 14 source files to c:\Jenkins\workspace\QA\autotest2\target\test-classes

**10:45:58** [INFO] **10:45:58** [INFO] --- maven-surefire-plugin:3.0.0-M3:test (default-test) @ my_project ---

**10:45:58** [INFO] **10:45:58** [INFO] ------------------------------------------------------- **10:45:58** [INFO] T E S T S **10:45:59** [INFO] -------------------------------------------------------

**10:45:59** [INFO] Running TestSuite

**10:46:01** Starting ChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}) on port 19334 **10:46:01** Only local connections are allowed. **10:46:01** Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.

**10:46:01** авг 02, 2019 10:49:03 AM org.openqa.selenium.remote.ProtocolHandshake createSession **10:46:02** INFO: Detected dialect: W3C

**10:46:07** ScreenShot captured for test case: positiveLoginByPhone **10:46:07** Test case: positiveLoginByPhone failed and video saved to \video\positiveLoginByPhone 2019-08-02 10.49.12.avi

**10:46:07** FAILED: positiveLoginByPhone **10:46:07** User can authorize using valid registered phone number and password **10:46:13** org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element is not clickable at point (1144, 45) **10:46:14** (Session info: chrome=76.0.3809.87) **10:46:14** Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' **10:46:17** System info: host: 'DESKTOP-49PFGA4', ip: , os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_221' **10:46:17** Driver info: org.openqa.selenium.chrome.ChromeDriver **10:46:17** Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 76.0.3809.87, chrome: {chromedriverVersion: 76.0.3809.68 (420c9498db8ce..., userDataDir: C:\Users\QA\AppData\Local\T...}, goog:chromeOptions: {debuggerAddress: localhost:54140}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify} **10:46:17** Session ID: 3c34f9a0befe4bbe06229a5bada495ab **10:46:17** at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) **10:46:17** at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) **10:46:17** at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) **10:46:17** at java.lang.reflect.Constructor.newInstance(Constructor.java:423) **10:46:17** at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187) **10:46:17** at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122) **10:46:17** at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49) **10:46:17** at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) **10:46:17** at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) **10:46:17** at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) **10:46:17** at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:285) **10:46:17** at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:84) **10:46:17** at pages.BasePage.click(BasePage.java:90) **10:46:17** at pages.HeaderComponent.goToLoginPage(HeaderComponent.java:50) **10:46:17** at tests.LoginTests.positiveLoginByPhone(LoginTests.java:36) **10:46:17** at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) **10:46:17** at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) **10:46:17** at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) **10:46:17** at java.lang.reflect.Method.invoke(Method.java:498) **10:46:17** at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:131) **10:46:17** at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:570) **10:46:17** at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:170) **10:46:17** at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46) **10:46:17** at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:790) **10:46:17** at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:143) **10:46:17** at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146) **10:46:17** at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128) **10:46:17** at org.testng.TestRunner.privateRun(TestRunner.java:763) **10:46:17** at org.testng.TestRunner.run(TestRunner.java:594) **10:46:17** at org.testng.SuiteRunner.runTest(SuiteRunner.java:398) **10:46:17** at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:392) **10:46:17** at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355) **10:46:17** at org.testng.SuiteRunner.run(SuiteRunner.java:304) **10:46:17** at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) **10:46:17** at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96) **10:46:17** at org.testng.TestNG.runSuitesSequentially(TestNG.java:1146) **10:46:17** at org.testng.TestNG.runSuitesLocally(TestNG.java:1067) **10:46:17** at org.testng.TestNG.runSuites(TestNG.java:997) **10:46:17** at org.testng.TestNG.run(TestNG.java:965) **10:46:17** at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:283) **10:46:17** at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:75) **10:46:17** at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120) **10:46:17** at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384) **10:46:17** at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345) **10:46:17** at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126) **10:46:17** at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418) **10:46:17** **10:46:17** **10:46:17** =============================================== **10:46:17** my_project **10:46:17** Tests run: 1, Failures: 1, Skips: 0 **10:46:17** =============================================== **10:46:17** **10:46:17** [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 15.268 s &lt;&lt;&lt; FAILURE! - in TestSuite **10:46:17** [ERROR] positiveLoginByPhone(tests.LoginTests) Time elapsed: 7.109 s &lt;&lt;&lt; FAILURE! **10:46:17** org.openqa.selenium.ElementClickInterceptedException: **10:46:17** element click intercepted: Element is not clickable at point (1144, 45) **10:46:17** (Session info: chrome=76.0.3809.87) **10:46:17** Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' **10:46:17** System info: host: 'DESKTOP-49PFGA4', ip: '', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_221' **10:46:17** Driver info: org.openqa.selenium.chrome.ChromeDriver **10:46:17** Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 76.0.3809.87, chrome: {chromedriverVersion: 76.0.3809.68 (420c9498db8ce..., userDataDir: C:\Users\QA\AppData\Local\T...}, goog:chromeOptions: {debuggerAddress: localhost:54140}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify} **10:46:17** Session ID: 3c34f9a0befe4bbe06229a5bada495ab **10:46:17** at tests.LoginTests.positiveLoginByPhone(LoginTests.java:36) **10:46:17** **10:46:17** [INFO] **10:46:17** [INFO] Results: **10:46:17** [INFO] **10:46:17** [ERROR] Failures: **10:46:17** [ERROR] LoginTests.positiveLoginByPhone:36 » ElementClickIntercepted element click int... **10:46:18** [INFO] **10:46:18** [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0 **10:46:18** [INFO] **10:46:18** [INFO] ------------------------------------------------------------------------ **10:46:18** [INFO] BUILD FAILURE **10:46:18** [INFO] ------------------------------------------------------------------------ **10:46:18** [INFO] Total time: 38.245 s **10:46:18** [INFO] Finished at: 2019-08-02T10:49:15+03:00 **10:46:18** [INFO] ------------------------------------------------------------------------ **10:46:18** [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M3:test (default-test) on project my_project: There are test failures. **10:46:18** [ERROR] **10:46:18** [ERROR] Please refer to c:\Jenkins\workspace\QA\autotest2\target\surefire-reports for the individual test results. **10:46:18** [ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream. **10:46:18** [ERROR] -&gt; [Help 1] **10:46:18** [ERROR] **10:46:18** [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. **10:46:18** [ERROR] Re-run Maven using the -X switch to enable full debug logging. **10:46:18** [ERROR] **10:46:18** [ERROR] For more information about the errors and possible solutions, please read the following articles: **10:46:18** [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

**10:46:18** Build step 'Execute Windows batch command' marked build as failure **10:46:18** Finished: FAILURE

Если кто-то сталкивался с подобным, поделитесь опытом, как решить данную проблему. На данный момент даже не представляю в какую сторону смотреть чтобы решить проблему.

Локально все запускается и работает нормально.


(Vasiliy Rakshin) #2

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


(Dmitry.K) #3

Поговорил с товарищами devops. Они говорят, что запускали, отрабатывает так же.


(Alexandr D.) #4

Так себе у вас девопсы.
Куча тем уже была про то, что дженкинс/слэйвы надо запускать не как службу в винде, если вы хотите видеть браузер.


(Dmitry.K) #5

на виртуальной машине стоит agent-start.bat

вот его содержимое:

но все равно не запускается браузер и валятся тесты.


(Vasiliy Rakshin) #6

Попробуйте этот батник отредактировать на такой:
start "Jenkins slave WIN10" /MIN java -jar C:\Jenkins\agent.jar -jnlpUrl http://IP:8080/computer/qa-auto-win/slave-agent.jnlp -secret key -workDir "c:\Jenkins\"
Вроде, правильно отредактировал на ваш. Отредактируйте его на свои данные.
Хоть посмотрим саму консоль. Чтобы было что-то типа такого:


(Dmitry.K) #7

походу проблема была в запуске bat файла с рабочего стола. Через минуту его винда переводила видать в сервис и он исчезал.
Запустил через Far, он висит в фоне и все работает. Браузер запускается через GUI.


(Alexandr D.) #8

Просто батник выполнил команду и цмд закрылась.

А вообще, лучше юзайте селеноид :slight_smile: