实际 - 我看到的行为是它在1节点上一次一个会话(FireFox浏览器)中顺序运行类中的所有测试。
预期 - 本例中的类" IntegrationTest"有20种方法(@Test)。我希望在课堂上看到5个测试被拾取,并在1个节点上的5个FireFox会话中并行运行。
这是我的testng套件文件。将线程数计为1是有道理的,因为我只想运行1个类。
<suite name="WebDriver Tests" parallel="classes" thread-count="1">
<test name="WebDriver Tests">
<classes>
<class name = "com.axiom.web.IntegrationTest" />
</classes>
</test>
这是我在集线器和节点上运行的grid2命令。
Hub命令 -
java -jar selenium-server-standalone-2.43.0.jar -role hub -browserTimeout 60
节点命令 -
java -jar selenium-server-standalone-2.43.0.jar -role node -hub http://<host ip address>:4444/grid/register
我在这里遗漏了什么吗?我需要做些什么才能让maxSession正常工作?我相信maxSession优先于maxInstances,但无论哪种方式,在node命令中指定none,both或者两者都不适用于我。我在Selenium版本2.43.1和testng版本6.8.8。
感谢并感谢您的帮助!
答案 0 :(得分:0)
参见&#34;配置节点&#34;在此页面上 - https://code.google.com/p/selenium/wiki/Grid2
thread-count
并指定您想要parallel="methods"
。 parallel="classes"
和thread-count=1
表示您需要一个总线程,并且您希望每个类中的所有方法都在同一个线程上运行。 parallel="methods"
表示您希望每个方法都拥有自己的线程。但是,单个线程无法实现您的目标,因此您需要添加更多总线程。
线程计数和并行设置的文档在这里 - http://testng.org/doc/documentation-main.html#parallel-running
答案 1 :(得分:0)
我建议您添加@BeforeMethod,并在@BeforeMethod中初始化多个驱动程序实例,如果要在5个浏览器中运行,则必须打开5个浏览器,即在@BeforeMethod中自己创建5个驱动程序实例。如果您需要进一步的帮助,请告诉我。