【问题标题】:How to run Selenium tests using TestNG framework and Jenkins如何使用 TestNG 框架和 Jenkins 运行 Selenium 测试
【发布时间】:2017-05-01 00:06:32
【问题描述】:

我想使用 Jenkins 运行在 TestNG 框架中编写的 Selenium 测试。

jenkins job(Freestyle项目)中配置的命令:

java -cp J:\taf\testng\*;J:\taf\workspace\TestNGExamples\bin;J:\automation\* org.testng.TestNG J:\taf\workspace\TestNGExamples\testng1.xml

注意:对于-cp argument,给出testng jar, test classes, and selenium jar的目录路径

当我运行作业(Build Now 选项)时,它在创建 Selenium 的会话活动时受到打击并给出错误。

注意:

命令行运行时,相同的命令成功运行。

来自控制台输出的错误日志: (jenkins)

Started by user Naveen
Building in workspace C:\Program Files (x86)\Jenkins\workspace\TestNG Example
[TestNG Example] $ cmd /c call C:\Windows\TEMP\hudson2261889395366550414.bat

C:\Program Files (x86)\Jenkins\workspace\TestNG Example>java -cp J:\taf\testng\*;J:\taf\workspace\TestNGExamples\bin;J:\automation\* org.testng.TestNG J:\taf\workspace\TestNGExamples\testng1.xml 
[TestNG] Running:
  J:\taf\workspace\TestNGExamples\testng1.xml

1481801204206   geckodriver INFO    Listening on 127.0.0.1:1387
Dec 15, 2016 4:56:44 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
1481801204827   mozprofile::profile INFO    Using profile path C:\Windows\TEMP\rust_mozprofile.KDz9DWYpWQAM
1481801204829   geckodriver::marionette INFO    Starting browser C:\Program Files\Mozilla Firefox\firefox.exe
1481801204831   geckodriver::marionette INFO    Connecting to Marionette on localhost:7795
1481801206090   Marionette  INFO    Listening on port 7795

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

JavaScript error: resource://app/modules/ContentCrashHandlers.jsm, line 75: TypeError: browser.permanentKey is not a non-null object

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

Dec 15, 2016 4:56:47 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

下面是测试类:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

    public class SeleniumTests {

        @Test
        public void test1(){
            WebDriver driver = new FirefoxDriver();
            driver.get("http://www.google.co.in");
            driver.quit();
        }

    }

下面是testng1.xml

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

<suite name="Default suite">
  <test verbose="2" name="Default test">
    <classes>
      <class name="SeleniumTests"/>
    </classes>
  </test> <!-- Default test -->
</suite> <!-- Default suite -->

环境详情:

  1. Jenkins - 2.19.4(作为 Windows 服务)
  2. Java - 1.8
  3. TestNG - 6.8.5
  4. 硒 - 3.0.1
  5. 火狐 - 51
  6. geckodriver - 0.11.1
  7. 操作系统 - Windows 7 - 64 位

【问题讨论】:

  • 您使用哪种操作系统? Linux?窗户?
  • Windows 操作系统 - 7 - 64 位
  • 对于 ChromDriver,没有观察到问题。但是对于 IEDriver,得到了org.openqa.selenium.NoSuchWindowException: Unable to get browser (WARNING: The server did not provide any stacktrace information)
  • 您将 Jenkins 安装为 Windows 服务还是 servlet 容器?
  • Jenkins 作为 Windows 服务

标签: java selenium jenkins selenium-webdriver testng


【解决方案1】:

按照Mackowski 的建议,在tomcat 中安装Jenkins 作为webapp(而不是Windows Service),它解决了问题

参考:

  1. https://wiki.jenkins-ci.org/display/JENKINS/Tomcat

注意:当我们在部署 Jenkins as Windows Service 时运行测试时,不会启动/观察到浏览器 GUI。 Jenkins inside tomcat,浏览器GUI启动。

【讨论】:

    【解决方案2】:

    这不是 TestNG 或 Selenium 问题。当 Jenkins 作为 Windows 服务安装时,有时会发生此错误。在 Tomcat 或 GlassFish 等 servlet 容器中安装 Jenkins,它应该会有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      相关资源
      最近更新 更多