我正在使用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"
它就可以了 - 但是重复这样的代码并不是我不喜欢的最佳实践。
任何人都可以帮忙解决这个原因吗?
感谢。
答案 0 :(得分:0)
我是初学者,我花了3个多小时,
每次我执行它都很顺利,但不是一个场景。
你的两个班级都有相同的父班吗?你在发起你的&#34;驱动程序&#34;在父类?并为您的子类使用相同的驱动程序实例?
当我执行上述操作时,它调用相同的浏览器来运行所有测试,尽管有3个线程正在运行。
答案 1 :(得分:0)
如果要并行运行方法,则必须创建多个Web驱动程序会话来处理每个线程
您可以在此处找到解决方案
https://github.com/PatilRohit/WebDriverParallelService/
这可以解决并行运行方法的同步问题。
答案 2 :(得分:-2)
尝试使用parallel="tests"
代替&#34;方法&#34;。它将并行运行所有测试