小编典典

将变量从jenkins传递到testng.xml

jenkins

我想根据例如从jenkins传递的变量来运行测试用例,请选择要运行的测试用例:testcaseOne,testcaseTwo

在pom.xml(maven)中:

    <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                    <configuration>

                        <suiteXmlFiles>
                        <suiteXmlFile>testng.xml</suiteXmlFile>
                        </suiteXmlFiles>

                        <systemPropertyVariables>
                        <chooseCase>${chooseCase}</chooseCase>   <--this dont work
                        </systemPropertyVariables>

                        <parallel>tests</parallel>
                        <threadCount>10</threadCount>

                    </configuration>
</plugin>

我有两个testng @test方法:

@Test(groups="caseOne")
@Test(groups="caseTwo")

还有我的testng.xml文件:

<test name="Test">
    <groups>
    <run>
      <include name="${chooseCase}"/>
    </run>
    </groups>
    <classes>
      <class name="AppTest"/>
      <class name="AppTest2"/>
    </classes>
  </test> <!-- Test -->

如何根据我要运行的测试数量和数量来传递此参数?也许有完全不同的方式来做到这一点?


阅读 478

收藏
2020-07-25

共1个答案

小编典典

您可以在testng.xml文件http://testng.org/doc/documentation-
main.html#beanshell中使用BeanShell脚本,并在其中读取系统变量,例如:

<test name="Test">
    <method-selectors>
        <method-selector>
            <script language="beanshell">
                <![CDATA[
                    String myTestGroup = System.getProperty("chooseCase");
                    groups.containsKey(myTestGroup);
                ]]>
            </script>
        </method-selector>
    </method-selectors>

    <classes>
        <class name="AppTest"/>
        <class name="AppTest2"/>
    </classes>
</test>
2020-07-25