将变量从詹金斯传递到 testng.xml
Pass variable from jenkins to testng.xml
我想 运行 根据从 jenkins 传递的变量测试用例
例如,选择您想要 运行 的测试用例:
测试用例一,测试用例二
在 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 -->
如何根据我想要的测试内容和测试次数来传递此参数 运行?
也许有完全不同的方法来做到这一点?
您可以在 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>
我想 运行 根据从 jenkins 传递的变量测试用例 例如,选择您想要 运行 的测试用例: 测试用例一,测试用例二
在 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 -->
如何根据我想要的测试内容和测试次数来传递此参数 运行? 也许有完全不同的方法来做到这一点?
您可以在 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>