运行testng套件时,Selenium Grid2默认的maxSession似乎没有按预期工作(parallel =“classes”)

时间:2014-09-23 23:00:37

标签: selenium-webdriver testng

实际 - 我看到的行为是它在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。

感谢并感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

  1. 您需要为节点配置您希望它支持的FF会话数。
  2. 参见&#34;配置节点&#34;在此页面上 - https://code.google.com/p/selenium/wiki/Grid2

    1. 您需要增加testng套件文件中的thread-count并指定您想要parallel="methods"
    2. parallel="classes"thread-count=1表示您需要一个总线程,并且您希望每个类中的所有方法都在同一个线程上运行。 parallel="methods"表示您希望每个方法都拥有自己的线程。但是,单个线程无法实现您的目标,因此您需要添加更多总线程。

      线程计数和并行设置的文档在这里 - http://testng.org/doc/documentation-main.html#parallel-running

答案 1 :(得分:0)

我建议您添加@BeforeMethod,并在@BeforeMethod中初始化多个驱动程序实例,如果要在5个浏览器中运行,则必须打开5个浏览器,即在@BeforeMethod中自己创建5个驱动程序实例。如果您需要进一步的帮助,请告诉我。