Java TestNG没有运行并行方法
我使用testNG并行运行一些Selenium测试,my suite.xml如下所示:Java TestNG没有运行并行方法,java,selenium,selenium-webdriver,testng,Java,Selenium,Selenium Webdriver,Testng,我使用testNG并行运行一些Selenium测试,my suite.xml如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite thread-count="20" name="Suite" parallel="methods"> <test name="Test1" group-by
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="20" name="Suite" parallel="methods">
<test name="Test1" group-by-instances="true" junit="true">
<classes>
<class name="uk.co.Pack1"/>
<class name="uk.co.Pack2"/>
</classes>
</test>
</suite>
Pack1
包含2个测试,Pack2
包含1个测试,因此使用parallel=“methods”
我预计会出现3个Chrome浏览器,但只有一个
如果我在单独的测试中编写每个类及其方法,每个类都指定了一个方法,然后设置parallel=“tests”
它就可以工作了-但是像这样复制代码并不是我喜欢的事情,也不是最佳实践
有人能解释为什么会这样吗
谢谢。尝试使用
parallel=“tests”
而不是“方法”。它将并行运行您的所有测试我是初学者,我花了3个多小时
我每次执行都很顺利,但没有一个场景
您的两个类是否具有相同的父类?您是否在父类中启动“驱动程序”?对您的子类使用相同的驱动程序实例
当我执行上述操作时,它调用相同的浏览器来运行所有测试,尽管有3个线程正在运行 如果要并行运行方法,则必须创建多个web驱动程序会话来处理每个线程 你可以在这里找到解决办法
这解决了并行运行中方法的同步问题。不幸的是,我已经尝试过,但自然不会期望(也不会)工作,因为我只有一个测试,其中有两个类。你能发布你的测试和类的示例代码片段吗?它们是基本的方法-我在这里使用的基本方法是一样的:你在@test annotation下初始化每个方法中的chromedriver吗?是的-每个测试都有@Test1。发布您的chromedriver实例化代码。即使初始化了三次,但实例是相同的,也会被覆盖。2.检查并行性更好的方法是添加一个带有Thread.currentthread.getId的sysout。通过这种方式,您可以确定问题是与并行性还是与代码有关。此外,parallel=方法对于您想要实现的目标是正确的。我在测试标记中看到junit=true。这是必需的。在您提到的场景中,不需要按实例分组。