我希望通过不是来自testng.xml文件的代码并行运行不同的测试套件。
//Creating virtual xml file from code
List<XmlSuite> suites = new ArrayList<XmlSuite>();
for (String dealerID : dealerList) {
String suiteName = dealerID;
XmlSuite suite = new XmlSuite();
suite.setName(suiteName);
XmlTest test = new XmlTest(suite);
test.setName("TestID-" + dealerID);
test.addParameter("DataString", DataString);
List<XmlClass> classes = new ArrayList<XmlClass>();
// Adding multiple classes
for (int i = 0; i < al.size(); i++) {
classes.add(i, new XmlClass(al.get(i).toString()));
}
test.setXmlClasses(classes);
test.setAllowReturnValues(true);
suites.add(suite);
}
// Running testng
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();
上面的代码将运行所有套件,但我想并行运行它们。
答案 0 :(得分:1)
suite.setParallel(XmlSuite.ParallelMode.CLASSES);
suite.setThreadCount(10);
并行模式还有其他选项 - 测试,方法等......在api概述中查看它们。
您可以在 - https://jitpack.io/com/github/cbeust/testng/master-6.11-g1e1d341-83/javadoc/index.html?org/testng/
查找详细信息答案 1 :(得分:0)
我遇到了一些问题,找到了解决方案,此代码应该可以工作
suite.parallel = ParallelMode.METHODS
suite.threadCount = Runtime.getRuntime().availableProcessors() // or whatever u want
答案 2 :(得分:0)
suite.setSuiteThreadPoolSize(<number of your suite>)
该行将允许在不同的线程中运行每个套件。希望这会有所帮助。
答案 3 :(得分:0)
要以编程方式并行运行xml套件,请使用.setSuiteThreadPoolSize(threadNumberHere)
:
// Running testng
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.setSuiteThreadPoolSize(suites.size());
tng.run();