Java 如何使用TestNG框架和Jenkins运行Selenium测试

Java 如何使用TestNG框架和Jenkins运行Selenium测试,java,selenium,jenkins,selenium-webdriver,testng,Java,Selenium,Jenkins,Selenium Webdriver,Testng,我想使用Jenkins运行在TestNG框架中编写的Selenium测试 jenkins作业(自由式项目)中配置的命令: 注意:对于-cp参数,给定到testngjar、测试类和seleniumjar的目录路径 当我运行作业(buildnow选项)时,它会在Selenium的创建会话活动中出错 注意: 从命令行运行时,同一命令成功运行 控制台输出的错误日志:(jenkins) 以下是测试类: import org.openqa.selenium.WebDriver; import org.ope

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

jenkins作业(自由式项目)中配置的命令:

注意:对于
-cp参数
,给定到
testngjar、测试类和seleniumjar的目录路径

当我运行作业(
buildnow
选项)时,它会在Selenium的创建会话活动中出错

注意:

命令行运行时,同一命令成功运行

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

以下是测试类:

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 -->

环境详情:

  • Jenkins-2.19.4(作为Windows服务)
  • Java-1.8
  • TestNG-6.8.5
  • 硒-3.0.1
  • Firefox-51
  • 壁虎河-0.11.1
  • 操作系统-Windows 7-64位

  • 根据
    Mackowski
    的建议,在
    tomcat
    中安装了
    Jenkins
    ,作为
    webapp
    (而不是
    Windows服务
    ),解决了问题

    参考:


  • 注意:当我们将Jenkins部署为Windows服务时运行测试时,没有启动/观察到浏览器GUI<代码>Jenkins在tomcat内部,浏览器GUI启动。

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

    您使用哪种操作系统?Linux?Windows?Windows OS-7-64位用于ChromDriver,未发现任何问题。但是对于IEDriver,get
    org.openqa.selenium.NoSuchWindowException:无法获取浏览器(警告:服务器未提供任何堆栈跟踪信息)
    您是将Jenkins安装为windows服务还是servlet容器?Jenkins安装为windows服务
    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();
            }
    
        }
    
    <?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 -->