serenity-bdd / serenity-core

Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.
http://serenity-bdd.info
Other
718 stars 515 forks source link

Bitbar integration failing on Jenkins #3194

Open WorldofAzeem opened 1 year ago

WorldofAzeem commented 1 year ago

Hello, We have integrated serenity with Bitbar by having serenity.config file "src\serenity\resources" .. Tests works fine perfectly connects to the birbar and executes from local machines (windows)

Now when trying to run same test from Jenkins it throws error like below.

runners.BrowserLaunchRunner > Simple test to launch browser with given "appUrl".To validate browser is launching and going to appUrl STANDARD_ERROR Jul 17, 2023 2:49:57 PM org.openqa.selenium.remote.tracing.opentelemetry.OpenTelemetryTracer createTracer INFO: Using OpenTelemetry for tracing

runners.BrowserLaunchRunner > Simple test to launch browser with given "appUrl".To validate browser is launching and going to appUrl FAILED net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate class org.openqa.selenium.remote.RemoteWebDriver at app//net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:164) at app//net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:152) at app//net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:122) at app//net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:192) at app//net.serenitybdd.core.pages.PageObject.openPageAtUrl(PageObject.java:982) at app//net.serenitybdd.core.pages.PageObject.openUrl(PageObject.java:928) at app//pages.DiscoverHomePage.goToUrl(DiscoverHomePage.java:75) at app//pages.DiscoverHomePage.go(DiscoverHomePage.java:33) at app//steps.BrowserLaunchStepDefinition.goToAppUrl(BrowserLaunchStepDefinition.java:12) at ?.user navigates to the appUrl(file:///opt/app/workspace/esqm-org/Automation/FrameworkAndUtils/QEP_TA/Smoke%20Test/Linux-Chrome-Headless/1-ui-with-serenity/src/serenity/resources/features/browser_launch/validate_browser_launch.feature:4)

    Caused by:
    net.thucydides.core.webdriver.DriverConfigurationError: WebDriver was unable to create a new instance of type class org.openqa.selenium.remote.RemoteWebDriver
    WebDriver reported the following message: Could not start a new session. Response code 400. Message: com.testdroid.api.APIException 
    Host info: host: 'vclp025872.na.discoverfinancial.com', ip: '10.15.166.197'
    Build info: version: '4.8.0', revision: '267030adea'
    System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-1160.80.1.el7.x86_64', java.version: '11.0.18'
    Driver info: org.openqa.selenium.remote.RemoteWebDriver
    Command: [null, newSession {capabilities=[**Capabilities {bitbar:options: {}, browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}], desiredCapabilities=Capabilities {bitbar:options: {}, browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}}]**

See below for more details. at app//net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:150) at app//net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:161) at app//net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:152) at app//net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:122) at app//net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:192) at app//net.serenitybdd.core.pages.PageObject.openPageAtUrl(PageObject.java:982) at app//net.serenitybdd.core.pages.PageObject.openUrl(PageObject.java:928) at app//pages.DiscoverHomePage.goToUrl(DiscoverHomePage.java:75) at app//pages.DiscoverHomePage.go(DiscoverHomePage.java:33) at app//steps.BrowserLaunchStepDefinition.goToAppUrl(BrowserLaunchStepDefinition.java:12) at java.base@11.0.18/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@11.0.18/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base@11.0.18/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@11.0.18/java.lang.reflect.Method.invoke(Method.java:566) at app//io.cucumber.java.Invoker.doInvoke(Invoker.java:66) at app//io.cucumber.java.Invoker.invoke(Invoker.java:24) at app//io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java:47) at app//io.cucumber.java.JavaStepDefinition.execute(JavaStepDefinition.java:29) at app//io.cucumber.core.runner.CoreStepDefinition.execute(CoreStepDefinition.java:66) at app//io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63) at app//io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10) at app//io.cucumber.core.runner.TestStep.executeStep(TestStep.java:84) at app//io.cucumber.core.runner.TestStep.run(TestStep.java:56) at app//io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:51) at app//io.cucumber.core.runner.TestCase.run(TestCase.java:84) at app//io.cucumber.core.runner.Runner.runPickle(Runner.java:75) at app//io.cucumber.junit.PickleRunners$NoStepDescriptions.lambda$run$0(PickleRunners.java:151) at app//io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:130) at app//io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23) at app//io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.java:130) at app//io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:148) at app//io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:144) at app//io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:28) at app//org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at app//org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at app//org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at app//org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at app//org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at app//org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at app//org.junit.runners.ParentRunner.run(ParentRunner.java:413) at app//io.cucumber.junit.FeatureRunner.run(FeatureRunner.java:137) at app//io.cucumber.junit.CucumberSerenityRunner.runChild(CucumberSerenityRunner.java:259) at app//io.cucumber.junit.CucumberSerenityRunner.runChild(CucumberSerenityRunner.java:59) at app//org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at app//org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at app//org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at app//org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at app//org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at app//io.cucumber.junit.CucumberSerenityRunner$RunCucumber.evaluate(CucumberSerenityRunner.java:288) at app//org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at app//org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at app//org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) at java.base@11.0.18/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@11.0.18/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base@11.0.18/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@11.0.18/java.lang.reflect.Method.invoke(Method.java:566) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)

        Caused by:
        org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 400. Message: com.testdroid.api.APIException 
        Host info: host: 'vclp025872.na.discoverfinancial.com', ip: '10.15.166.197'
        Build info: version: '4.8.0', revision: '267030adea'
        System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-1160.80.1.el7.x86_64', java.version: '11.0.18'
        Driver info: org.openqa.selenium.remote.RemoteWebDriver
        Command: [null, newSession {capabilities=[Capabilities {bitbar:options: {}, browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}], desiredCapabilities=Capabilities {bitbar:options: {}, browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}}]
        Capabilities {}
            at app//org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:148)
            at app//org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:106)
            at app//org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67)
            at app//org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:156)
            at app//org.openqa.selenium.remote.TracedCommandExecutor.execute(TracedCommandExecutor.java:51)
            at app//org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
            at app//org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:229)
            at app//org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:157)
            at app//org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:139)
            at app//net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.newInstance(RemoteDriverProvider.java:83)
            at app//net.thucydides.core.webdriver.WebDriverFactory.createWebDriver(WebDriverFactory.java:162)
            at app//net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:140)
            ... 74 more

Capabilities are showing as blank even though we have data in serenity.config file. We are not able to find what the issue is why its failing only on Jenkins environment.

please let us know if there are any recommendations.

WorldofAzeem commented 1 year ago

serenity.config file is below webdriver { driver = "remote" capabilities { platformName = "Windows" browserName = "firefox" browserVersion = "113" "bitbar:options" { osVersion = "10" screenResolution = "1920x1080" } } } bitbar { active = true apiKey = "OUR KEY" hub = "eu-desktop-hub" cloudUrl = "https://cloud.bitbar.com" }