Hi All,
I get UnsupportedDriverException exception during JBehave + Serenity project execution on local Jenkins. Maven command on Jenkins job:
clean compile integration-test -Dfun.scanner.stories=stories/search_for_euro_cup_participants.story serenity:aggregate (the same behaviour without serenity:aggregate).
Chrome: 52.0.2743.82 (64-bit)
Java: 1.8
Maven: 3.3.9
chromedriver: 2.22.397932
Path to google chrome is set in environment variables.
The same maven command execution goes smooth via IDEA (chrome instance is created successfully, story is passed, etc.).
Exception (on Jenkins ONLY):
13:50:08.969 [pool-1-thread-1] ERROR n.t.core.webdriver.WebDriverFacade - FAILED TO CREATE NEW WEBDRIVER_DRIVER INSTANCE class org.openqa.selenium.chrome.ChromeDriver: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver
net.thucydides.core.webdriver.UnsupportedDriverException: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:209) ~[serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:142) [serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:133) [serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:103) [serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.webdriver.WebDriverFacade.openIgnoringHtmlUnitScriptErrors(WebDriverFacade.java:178) [serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:173) [serenity-core-1.1.36.jar:1.1.36]
at net.serenitybdd.core.pages.PageObject.openPageAtUrl(PageObject.java:830) [serenity-core-1.1.36.jar:1.1.36]
at net.serenitybdd.core.pages.PageObject.open(PageObject.java:740) [serenity-core-1.1.36.jar:1.1.36]
at net.serenitybdd.core.pages.PageObject.open(PageObject.java:728) [serenity-core-1.1.36.jar:1.1.36]
at bodaganj.steps.SoccerWaySteps.open_soccerway_website(SoccerWaySteps.java:35) [classes/:na]
at bodaganj.steps.SoccerWaySteps$$EnhancerByCGLIB$$e5ab7eee.CGLIB$open_soccerway_website$0(<generated>) [cglib-3.1.jar:na]
at bodaganj.steps.SoccerWaySteps$$EnhancerByCGLIB$$e5ab7eee$$FastClassByCGLIB$$5af553ef.invoke(<generated>) [cglib-3.1.jar:na]
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) [cglib-3.1.jar:na]
at net.thucydides.core.steps.StepInterceptor.invokeMethod(StepInterceptor.java:369) [serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.steps.StepInterceptor.executeTestStepMethod(StepInterceptor.java:354) [serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.steps.StepInterceptor.runTestStep(StepInterceptor.java:329) [serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.steps.StepInterceptor.testStepResult(StepInterceptor.java:134) [serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.steps.StepInterceptor.intercept(StepInterceptor.java:61) [serenity-core-1.1.36.jar:1.1.36]
at bodaganj.steps.SoccerWaySteps$$EnhancerByCGLIB$$e5ab7eee.open_soccerway_website(<generated>) [cglib-3.1.jar:na]
at bodaganj.jbehave.definitionSteps.SoccerWayDefinitionSteps.openSoccerWayWebsite(SoccerWayDefinitionSteps.java:21) [test-classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_91]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_91]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_91]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_91]
at org.jbehave.core.steps.StepCreator$ParametrisedStep.perform(StepCreator.java:599) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree$FineSoFar.run(PerformableTree.java:340) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree$PerformableSteps.perform(PerformableTree.java:1072) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree$AbstractPerformableScenario.performRestartableSteps(PerformableTree.java:938) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree$NormalPerformableScenario.perform(PerformableTree.java:977) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree$PerformableScenario.perform(PerformableTree.java:887) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree$PerformableStory.performScenarios(PerformableTree.java:811) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree$PerformableStory.perform(PerformableTree.java:784) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree.performCancellable(PerformableTree.java:416) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.PerformableTree.perform(PerformableTree.java:387) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:291) [jbehave-core-4.0.5.jar:na]
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:265) [jbehave-core-4.0.5.jar:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_91]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_91]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_91]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
Caused by: org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.22.397932 (282ed7cf89cf0053b6542e0d0f039d4123bbb6ad),platform=Linux 3.13.0-91-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.28 seconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'bogdan-Inspiron-3737', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-91-generic', java.version: '1.8.0_91'
Driver info: org.openqa.selenium.chrome.ChromeDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_91]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_91]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_91]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_91]
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) ~[selenium-remote-driver-2.53.0.jar:na]
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) ~[selenium-remote-driver-2.53.0.jar:na]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) ~[selenium-remote-driver-2.53.0.jar:na]
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) ~[selenium-remote-driver-2.53.0.jar:na]
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) ~[selenium-remote-driver-2.53.0.jar:na]
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) ~[selenium-remote-driver-2.53.0.jar:na]
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:170) ~[selenium-chrome-driver-2.53.0.jar:na]
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:138) ~[selenium-chrome-driver-2.53.0.jar:na]
at net.thucydides.core.webdriver.WebdriverInstanceFactory.newChromeDriver(WebdriverInstanceFactory.java:88) ~[serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.webdriver.WebDriverFactory.chromeDriver(WebDriverFactory.java:510) ~[serenity-core-1.1.36.jar:1.1.36]
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:184) ~[serenity-core-1.1.36.jar:1.1.36]
... 39 common frames omitted
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>bodaganj</groupId>
<artifactId>TestProject</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>Test JBehave vs Serenity project</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<serenity.version>1.1.36</serenity.version>
<serenity.maven.version>1.1.36</serenity.maven.version>
<serenity.jbehave.version>1.13.0</serenity.jbehave.version>
<!--<webdriver.driver>chrome</webdriver.driver>-->
</properties>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<version>${serenity.version}</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-junit</artifactId>
<version>${serenity.version}</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-jbehave</artifactId>
<version>${serenity.jbehave.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.easytesting</groupId>
<artifactId>fest-assert-core</artifactId>
<version>2.0M10</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.googlecode.lambdaj</groupId>
<artifactId>lambdaj</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<includes>
<include>**/*TestSuite.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
</plugin>
<plugin>
<groupId>net.serenity-bdd.maven.plugins</groupId>
<artifactId>serenity-maven-plugin</artifactId>
<version>${serenity.maven.version}</version>
<executions>
<execution>
<id>serenity-reports</id>
<phase>post-integration-test</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
System property regarding driver and browser are set (different cases've been tested):
1. Via EnvironmentVariables -> environmentVariables.setProperty(propertyName, localPropertyValue)
DEBUG FunScannerProperties - System property webdriver.driver was successfully added, --> chrome
DEBUG FunScannerProperties - System property webdriver.chrome.driver was successfully added, --> drivers/chromedriver
2. Properties are specified in serenity.properties.xml:
#--------- WebDriver configuration ------------------------------------
#webdriver.driver=firefox
webdriver.driver=chrome
#webdriver.driver=phantomjs
webdriver.chrome.driver=drivers/chromedriver
restart.browser.each.scenario=true
webdriver.timeouts.implicitlywait=5000
story.timeout.in.secs=2000
serenity.take.screenshots=FOR_FAILURES
serenity.verbose.steps=false
serenity.report.show.manual.tests=false
untrusted.certificates=true
serenity.timeout=15000
serenity.reports.show.step.details=false
3. As Jenkins job properties:
webdriver.chrome.driver=/drivers/chromedriver
webdriver.driver=chrome
Nothing helps.
Any ideas regarding this issue?
Thanks a lot,
Bogdan