2017-01-09 306 views
0

我一直在试图让Jenkins在我的自动化测试中使用Chrome。当我在本地运行测试时,我可以通过TestNG的JDK VM选项中的-Dbrowser = chrome来使用C​​hrome。配置Jenkins使用Chrome - Selenium 3.0.1 Maven TestNG

enter image description here

出于某种原因,它似乎是停留在使用Firefox不管我怎么努力。

这里是我以前的方法

@BeforeMethod(
    alwaysRun = true 
) 
public static void configureBrowserBeforeTest(Method testMethod) { 
    try { 
     ((Driver)driver.get()).resetBrowser(); 
     wait.set(newDefaultWait()); 
     userAgent = determineUserAgent(); 
     initialiseNewScreenshotCapture(testMethod); 
    } catch (Exception var2) { 
     logger.error("Failed to configure browser.", var2); 
     throw new RuntimeException("Failed to configure browser.", var2); 
    } 
} 

及POM文件

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.frameworkium</groupId> 
    <artifactId>Frameworkium</artifactId> 
    <packaging>jar</packaging> 
    <version>2.0.5</version> 

    <name>Frameworkium</name> 
    <description> 
     A template designed to get up and running quickly with Selenium and Appium. 
    </description> 
    <url/> 
    <inceptionYear/> 
    <organization/> 
    <licenses/> 

    <developers/> 
    <contributors/> 

    <prerequisites> 
     <maven>3.1.1</maven> 
    </prerequisites> 

    <modules/> 

    <scm/> 
    <issueManagement/> 
    <ciManagement/> 
    <distributionManagement/> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <env.config>local</env.config> 
     <threads>1</threads> 
     <groups/> 
     <aspectj.version>1.8.9</aspectj.version> 
    </properties> 

    <repositories> 
     <repository> 
      <id>jitpack.io</id> 
      <url>https://jitpack.io</url> 
     </repository> 
    </repositories> 

    <dependencies> 
     <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>6.9.8</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>3.11</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.14</version> 
     </dependency> 
     <dependency> 
      <groupId>com.github.Frameworkium</groupId> 
      <artifactId>frameworkium-core</artifactId> 
      <version>2.3.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-remote-driver</artifactId> 
      <version>3.0.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>3.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-server</artifactId> 
      <version>3.0.1</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
     <testSourceDirectory>src/test/java</testSourceDirectory> 
     <resources> 
      <resource> 
       <directory> 
        src/main/resources 
       </directory> 
      </resource> 
     </resources> 
    </build> 
    <profiles> 
     <profile> 
      <id>tests</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      <build> 

       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-compiler-plugin</artifactId> 
         <version>3.5.1</version> 
         <configuration> 
          <source>1.8</source> 
          <target>1.8</target> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>2.19.1</version> 
         <configuration> 
          <parallel>methods</parallel> 
          <threadCount>${threads}</threadCount> 
          <systemProperties> 
           <screenshotDirectory> 
            ${project.build.directory}/screenshots 
           </screenshotDirectory> 
           <allure.issues.tracker.pattern> 
            /browse/%s 
           </allure.issues.tracker.pattern> 
          </systemProperties> 
          <suiteXmlFiles> 
           <suiteXmlFile>testng.xml</suiteXmlFile> 
          </suiteXmlFiles> 
          <includes> 
           <include>**/Test*.java</include> 
           <include>**/*Tests*.java</include> 
           <include>**/*Tests.java</include> 
           <include>**/*Test.java</include> 
           <include>**/*TestCase.java</include> 
          </includes> 
          <groups>${groups}</groups> 
          <testFailureIgnore>false</testFailureIgnore> 
          <argLine> 
           -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" 
          </argLine> 
         </configuration> 
        </plugin> 
       </plugins> 

      </build> 
     </profile> 
    </profiles> 
</project> 

enter image description here

我敢肯定,该解决方案是简单的东西,我已经詹金斯作为服务运行和使用一个本地管理员帐户。我已经安装了jenkins的chromedriver插件以及Selenium插件。测试结果正常,但他们正在使用Firefox和FF版本50似乎无法与Selenium 3.0.1上的壁虎驱动程序一起使用,所以我宁愿使用Chrome,我知道它的工作正常,但对于我的生活我无法图如何告诉詹金斯使用Chrome而不是FF。在此先感谢您的帮助!如果我遗漏了任何东西,我们表示歉意。

OS - Windows Server 2012中 Maven的 TestNG的 硒3.0.1

回答

1

我猜测,定义要使用的默认浏览器是Firefox和测试代码是不是能够找到浏览器的味道使用(通过命令行(或)JVM args(或)通过参数),所以它的默认值是它所知道的,即firefox

我注意到在你的IntelliJ运行配置截图中,你已经使用JVM参数-Dbrowser=chrome指定了浏览器的风格,但由于某些原因,我在你的Jenkins配置页面截图中看不到相同的结果。

你似乎有这样的事情clean install package -DBrowserName="$BROWSERNAME" -e

能否请您将其更改为clean install package -Dbrowser=$BROWSERNAME -e(我不认为你需要附上$BROWSERNAME引号和我假设BROWSERNAME指的是有效的参数在詹金斯配置页面)

这应该基本上照顾你的问题。

+0

谢谢你解决了我的问题。它作为无头浏览器运行,我如何才能启动浏览器? – OhAye

+0

请检查是否有帮助http://stackoverflow.com/questions/9618774/jenkins-selenium-gui-tests-are-not-visible-on-windows –