如何使用Testng以编程方式运行并行套件?

如何使用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

我希望通过代码而不是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();
//从代码创建虚拟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();