从jenkins传递java参数->;maven->;testng

从jenkins传递java参数->;maven->;testng,maven,jenkins,parameter-passing,testng,maven-surefire-plugin,Maven,Jenkins,Parameter Passing,Testng,Maven Surefire Plugin,我们的自动化QA测试用例由Jenkins安排和执行。我必须在不同的环境下运行测试用例,比如UAT、STAGE和PROD(因为它们有不同的测试数据),这些测试用例被“分组”为健全性、回归和BATS。 我正在使用maven+testNG(surefire插件)来构建和执行它 现在,我需要在Jenkins中以“舞台上的蝙蝠”或“开发中的回归”等方式运行此任务。 对于这一点,我认为最好的方法是,在詹金斯·乔布斯的《confis》中,称之为 mvn test -Denv=STAGE -Dgroup=SAN

我们的自动化QA测试用例由Jenkins安排和执行。我必须在不同的环境下运行测试用例,比如UATSTAGEPROD(因为它们有不同的测试数据),这些测试用例被“分组”为健全性回归BATS。 我正在使用maven+testNG(surefire插件)来构建和执行它

现在,我需要在Jenkins中以“舞台上的蝙蝠”或“开发中的回归”等方式运行此任务。 对于这一点,我认为最好的方法是,在詹金斯·乔布斯的《confis》中,称之为

mvn test -Denv=STAGE -Dgroup=SANITY
另一个选项是在Jenkins的系统变量中设置参数(env和group)并从那里开始

但我面临着一些主要障碍,正如在这里的另一篇文章中提出的那样

这似乎是一个常见的要求,以前有人提出过吗?我的方法正确吗?还有更好的方法吗


请建议。

您可以为每个测试场景/环境创建单独的maven构建概要文件,然后根据Jenkins中设置的命令行参数或环境变量设置它们的激活

编辑:

基本上,每个测试场景都有一个概要文件,然后使用surefire插件的包含/排除配置来控制触发哪些测试。理想情况下,您可以通过一个顶级测试类来运行所有这些,这样您调用的每一组“组”都将具有某种触发底层测试套件的AllTests.java类

   <profile>
    <id>Stage</id>
    <activation>
      <activeByDefault>false</activeByDefault>
    </activation>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12.4</version>
            <configuration>
              <includes>
            <include>**/Sanity/AllTests.java</include>
              </includes>
            </configuration>
          </plugin>
        </plugins>
  </profile>

阶段
假的
org.apache.maven.plugins
maven surefire插件
2.12.4
**/Sanity/AllTests.java

假设您使用构建部分来运行“mvn测试”,下面是对我有效的方法。我去了上面提到的同一个帖子,但发现这个方法更简单

(Jenkins为作业配置页面)


谢谢你的回复,这是不是一个过度杀戮,有没有任何简化的方法,你可以建议请。这似乎是一个常见的要求。我不认为这是过分的。您必须有一种方法来告诉插件要运行/排除哪些测试,并且这种方法是通过configuration元素来实现的。因此,在maven中,如果你想在不同的场景中使用相同的POM创建不同的行为,你可以创建不同的配置文件。@Girish-让我知道它是如何进行的,如果有帮助,不要忘记向上投票并接受。感谢你的帮助,看起来不是为每个测试场景创建配置文件,而是可以以更简单的方式实现,你怎么认为?
Build
Invoke Maven 3
  Maven Version [<latest version>]
  Root POM      [pom.xml]
  Goals and options [test -Denv=STAGE -Dgroup=SANITY]
Goals and options [test -Denv=$PARAM_ENV -Dgroup=$PARAM_GROUP]