您可以使用包而不是类来执行所有测试,而不必提及每个类:
<test name="ChromeTest" parallel="none" preserve-order="true">
<parameter name="browser" value="chrome" />
<packages>
<package name="Demos" />
</packages>
</test>
<test name="EdgeTest" parallel="none" preserve-order="true">
<parameter name="browser" value="edge" />
<packages>
<package name="Demos" />
</packages>
</test>
或者只在定义了多个参数的情况下使用当前方法(为了解析字符串数组,还需要使用DataProvider):
<suite name="Suite" verbose="3">
<test name="SeleniumTest verbose="3"">
<parameter name="browser" value="chrome, edge, firefox" />
<classes>
<class name="Demos.Demo01" />
<class name="Demos.Demo02" />
<class name="Demos.Demo03" />
<class name="Demos.Demo04" />
</classes>
</test>
<!-- Test -->
</suite>
<!-- Suite -->
并添加数据提供程序以分析每个浏览器值:
@DataProvider
public Object[][] getData(ITestContext context) {
String parameter = context.getCurrentXmlTest().getLocalParameters().get("browser");
String[] browsers = parameter.split(",");
Object[][] returnValues = new Object[names.length][1];
int index = 0;
for (Object[] each : returnValues) {
each[0] = browsers[index++].trim();
}
return returnValues;
}