如何使用Testng以编程方式运行并行套件?
我希望通过代码而不是testng.xml文件并行运行不同的测试套件如何使用Testng以编程方式运行并行套件?,testng,Testng,我希望通过代码而不是testng.xml文件并行运行不同的测试套件 //Creating virtual xml file from code List<XmlSuite> suites = new ArrayList<XmlSuite>(); for (String dealerID : dealerList) { String suiteName = dealerID; X
//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();
//从代码创建虚拟xml文件
列表套件=新的ArrayList();
for(字符串dealerID:dealerList){
字符串suiteName=dealerID;
XmlSuite=newxmlsuite();
suite.setName(suiteName);
XmlTest=新的XmlTest(套件);
test.setName(“TestID-”+dealerID);
test.addParameter(“DataString”,DataString);
列表类=新的ArrayList();
//添加多个类
对于(int i=0;i
上面的代码将以串联方式运行所有套件,但我希望并行运行它们
suite.setParallel(XmlSuite.ParallelMode.CLASSES);
suite.setThreadCount(10);
并行模式还有其他选择-测试、方法等。。。请查看api概述
您可以在--查看详细信息。我遇到了一些问题,找到了这个解决方案,这段代码应该可以工作
suite.parallel = ParallelMode.METHODS
suite.threadCount = Runtime.getRuntime().availableProcessors() // or whatever u want
suite.setSuiteThreadPoolSize()
这一行允许在不同的线程中运行每个套件。希望这有帮助。要以编程方式并行运行xml套件,请使用
。setSuite ethreadpoolsize(threadnumberher)
:
不工作,每次只启动一个线程,没有并行线程。请尝试在testng实例-tng.setParallel(ParallelMode.CLASSES)上设置它;没用。TestNG正在绕过
setParallel
方法并以串联方式运行测试。
// Running testng
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.setSuiteThreadPoolSize(suites.size());
tng.run();