错误:在Jenkins通过Selenium执行测试套件时,从渲染器接收消息超时:20.000

我使用ChromeDriver和Selenium来运行我的自动化测试。测试套件在Eclipse和命令行中都能成功运行。但是,当我尝试在Jenkins中构建它时,它不会运行。


这是我在詹金斯的工作配置(所有信息的名称都是为保密而清理的):  在此输入图像描述 我可以确认它的Ant运行的是JDK8。


这是构建的控制台输出:


[junit] Running main.TESTNAME

    [junit] Starting ChromeDriver 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f) on port 27352

    [junit] Only local connections are allowed.

    [junit] Apr 26, 2018 3:52:34 PM org.openqa.selenium.remote.ProtocolHandshake createSession

    [junit] INFO: Detected dialect: OSS

    [junit] Running through test suite as:

    [junit] User: USERNAME

我的build.xml下面主要是自动生成的,除了我添加JUnit集成的结尾:


<?xml version="1.0" encoding="UTF-8"?>

<project basedir="." default="build" name="PROJECTSeleniumTest">

<property environment="env"/>

<property name="debuglevel" value="source,lines,vars"/>

<property name="target" value="1.8"/>

<property name="source" value="1.8"/>

<path id="PROJECTSeleniumTest.classpath">

    <pathelement location="bin"/>

    <pathelement location="lib/byte-buddy-1.7.5.jar"/>

    <pathelement location="lib/client-combined-3.8.1-sources.jar"/>

    <pathelement location="lib/client-combined-3.8.1.jar"/>

    <pathelement location="lib/commons-codec-1.10.jar"/>

    <pathelement location="lib/commons-exec-1.3.jar"/>

    <pathelement location="lib/commons-logging-1.2.jar"/>

    <pathelement location="lib/gson-2.8.2.jar"/>

    <pathelement location="lib/guava-23.0.jar"/>

    <pathelement location="lib/hamcrest-core-1.3.jar"/>

    <pathelement location="lib/httpclient-4.5.3.jar"/>

    <pathelement location="lib/httpcore-4.4.6.jar"/>

    <pathelement location="lib/junit-4.12.jar"/>

</path>

<target name="init">

    <mkdir dir="bin"/>

    <copy includeemptydirs="false" todir="bin">

        <fileset dir="src">

            <exclude name="**/*.launch"/>

            <exclude name="**/*.java"/>

        </fileset>

    </copy>

</target>

<target name="clean">

    <delete dir="bin"/>

</target>

<target depends="clean" name="cleanall"/>

<target depends="build-subprojects,build-project,junit" name="build"/>


有谁知道原因可能是什么?谢谢。


FFIVE
浏览 1052回答 2
2回答

慕桂英3389331

此错误消息...[30.168][SEVERE]: Timed out receiving message from renderer: 20.000...表示ChromeDriver无法启动新的Chrome浏览器进程。您的主要问题是您使用的二进制文件之间的版本兼容性如下:您正在使用chromedriver = 2.33chromedriver发行说明= 2.33明确提到以下内容:支持Chrome v60-62您正在使用chrome = 64.0ChromeDriver v2.35的发行说明明确提到以下内容:支持Chrome v62-64(包括您使用的浏览器版本)您的Selenium客户端版本是3.8.1。您的JDK版本是1.8.0_151,这是相当旧的。因此,JDK v8u151,Selenium Client v3.8.1,ChromeDriver v2.33和Chrome Browser v64.0之间明显不匹配解将JDK升级到最新级别JDK 8u162。将Selenium升级到当前级别版本3.11.0。升级ChromeDriver当前ChromeDriver v2.38水平。将Chrome版本保持在Chrome v66.x级别。(根据ChromeDriver v2.38发行说明)清理你的项目工作,通过你的IDE和重建仅需要依赖你的项目。使用CCleaner工具在执行Test Suite之前和之后擦除所有操作系统。如果您的基本Web客户端版本太旧,请通过Revo Uninstaller将其卸载并安装最新的GA和已发布的Web客户端版本。进行系统重启。执行你的@Test。

互换的青春

由于我的工作场所限制了我的Chrome版本,我目前无法通过v64升级。我也无法安装未经批准的软件。但是,我确实更新了:ChromeDriver为2.37(支持Chrome v64),Selenium为3.11,作业JDK为1.8.0_171。&nbsp;它仍然运行失败。正如我所说,在更新这些之前,我的ant构建在命令行和Eclipse中都有效。只有与詹金斯的不兼容。如果我有证据证明它在其他地方执行,你认为它仍然与版本不兼容吗?他们在不同的小版本中运行,但他们仍然是1.8&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP