Java TestNG没有运行并行方法

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

我使用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-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。这是必需的。在您提到的场景中,不需要按实例分组。