我有一个 testNG xml,它将执行(一个)测试用例 2 次。每次之间的差异是测试级别参数。所以我必须使用 2 个不同的参数(2 个用户)执行测试用例。
现在我将创建新的 xml(xml 套件),我将从中调用现有的 xml。我将在套件 xml 中为用户定义一个新参数。
期望是如果套件 xml 参数 =“user2”,那么子 xml 应该只执行一次测试用例,其参数为 user2。
我尝试了 beanshell 脚本,发现它对方法选择器很有用。但我想为测试级别而不是方法级别做出决定。
下面是 testNG.xml,它以不同的用户值调用测试用例 2 次。第一次使用 User="USER1" 调用 TestCase,第二次使用 User="USER2" 调用 TestCase。
<?xml version="1.0"?>
<suite name="TestLoad">
<test verbose="10" name="TestForUser1" preserve-order="true">
<parameter name="User" value="USER1"/>
<classes>
<class name="com.dummy.test.TestCase"/>
</classes>
</test>
<test verbose="10" name="TestForUser2" preserve-order="true">
<parameter name="User" value="USER2"/>
<classes>
<class name="com.dummy.test.TestCase"/>
</classes>
</test>
</suite>
下面是我将新创建的 xml 套件,以调用如上所述的许多 testng.xml。
<?xml version="1.0"?>
<suite name="suiteOfXml">
<parameter name="User" value="USER1"/>
<suite-files>
<suite-file path="TestLoad.xml"/>
<suite-file path="TestStage.xml"/>
</suite-files>
</suite>
期望是这样的:
- 如果suiteOfXml 有User="USER1" 那么每个testNG xml 应该只运行一次TestCase 并且User=USER1。
- 如果suiteOfXml 有User="USER2" 那么每个testNG xml 应该只运行一次TestCase 并且User=USER2。
- 如果 suiteOfXml 有 User="ALL" 那么每个 testNG xml 应该运行两次 TestCase。一次使用 User=USER1,下一次使用 User=USER2。
我无法对 TestCase(java 类级别)进行任何更改。条件应仅在 xml 中进行。
请提供一个可能的解决方案。提前致谢