【问题标题】:Selenium WebDriver, TestNG - Couldn't run test via Jenkins "g_slice_set_config: assertion 'sys_page_size == 0' failed"Selenium WebDriver,TestNG - 无法通过 Jenkins 运行测试“g_slice_set_config: assertion 'sys_page_size == 0' failed”
【发布时间】:2015-09-22 21:06:42
【问题描述】:

我有一个带有 TestNG 类的 Maven 项目,它只包含一个针对 Firefox 浏览器的测试。当我从 IDE 或终端(mvn install)运行此套件时,一切正常。 尝试通过 Jenkins 在本地 (http://localhost:8080) 运行后出现错误。

Running TestSuite

org.openqa.selenium.firefox.NotConnectedException:45000 毫秒后无法连接到端口 7056 上的主机 127.0.0.1。火狐控制台输出: (进程:28573):GLib-CRITICAL **:g_slice_set_config:断言'sys_page_size == 0'失败 错误:无法打开显示:0:0

at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:120)
at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:275)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:116)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:220)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:215)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:211)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:124)
at example.Home.beforeTest(Home.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
at org.testng.TestRunner.beforeRun(TestRunner.java:641)
at org.testng.TestRunner.run(TestRunner.java:609)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
at org.testng.TestNG.run(TestNG.java:1031)
at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:177)
at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92)
at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:105)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74)

测试运行:3,失败:1,错误:0,跳过:2,经过时间:47.19 秒

结果:

失败的测试: beforeTest(example.Home): 无法连接到端口 7056 上的二进制 FirefoxBinary(/usr/bin/firefox);处理输出如下:(..)

【问题讨论】:

    标签: java maven firefox selenium jenkins


    【解决方案1】:

    您的问题不是 g_slice_set_config,而是“错误:无法打开显示”

    要解决这个问题,您需要为您的 Jenkins 正确设置无头测试环境。试着按照这个开始,希望你会没事的(;

    http://alex.nederlof.com/blog/2012/11/19/installing-selenium-with-jenkins-on-ubuntu/

    干杯D

    【讨论】:

      【解决方案2】:

      可能有多种原因:

      • Jenkins 盒子上没有安装 Firefox
      • 没有在 Jenkins 机器上运行的 x 服务器
      • 此版本的 selenium webdriver 不支持 Firefox 版本

      【讨论】:

        最近更新 更多