TestNG没有运行并行方法

时间:2015-09-30 11:52:50

标签: java selenium selenium-webdriver testng

我正在使用testNG并行运行一些Selenium测试,我的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"它就可以了 - 但是重复这样的代码并不是我不喜欢的最佳实践。

任何人都可以帮忙解决这个原因吗?

感谢。

3 个答案:

答案 0 :(得分:0)

我是初学者,我花了3个多小时,

每次我执行它都很顺利,但不是一个场景。

你的两个班级都有相同的父班吗?你在发起你的&#34;驱动程序&#34;在父类?并为您的子类使用相同的驱动程序实例?

当我执行上述操作时,它调用相同的浏览器来运行所有测试,尽管有3个线程正在运行。

答案 1 :(得分:0)

如果要并行运行方法,则必须创建多个Web驱动程序会话来处理每个线程

您可以在此处找到解决方案

https://github.com/PatilRohit/WebDriverParallelService/

这可以解决并行运行方法的同步问题。

答案 2 :(得分:-2)

尝试使用parallel="tests"代替&#34;方法&#34;。它将并行运行所有测试