2014-09-23 67 views
0

實際 - 我看到的行爲是它按順序在一個會話中運行所有測試(FireFox瀏覽器)在1個節點上。Selenium Grid2在運行testng套件(parallel =「classes」)時,默認的maxSession似乎沒有像預期的那樣工作

預計 - 本示例「IntegrationTest」中的類有20個方法(@Test)。我期望在課堂上看到5個測試獲得提升,並在1個節點上的5個FireFox會話中並行運行。

這是我的testng套件文件。讓線程數爲1是有道理的,因爲我只想運行一個類。

<suite name="WebDriver Tests" parallel="classes" thread-count="1"> 
<test name="WebDriver Tests"> 
    <classes> 
     <class name = "com.axiom.web.IntegrationTest" /> 
    </classes> 
</test> 

而這裏的GRID2命令,我的樞紐和節點運行。

樞紐命令 -

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,但無論哪種方式,指定none,兩者或者在節點命令中都不適用於我。我在Selenium版本2.43.1和testng版本6.8.8上。

謝謝,感謝幫助!

回答

0
  1. 您需要使用您希望支持的FF會話數來配置節點。

看到這個頁面上的「配置節點」 - https://code.google.com/p/selenium/wiki/Grid2

  • 你需要增加TestNG的套件文件的thread-count,並指定要parallel="methods"
  • parallel="classes"thread-count=1表示您想要一個總線程,並且希望每個類中的所有方法都在同一個線程上運行。 parallel="methods"表示您希望每種方法都擁有自己的線程。但是,單個線程無法達到您想要的效果,因此您需要添加更多的總線程數。

    文檔的線程數和並行設置在這裏 - http://testng.org/doc/documentation-main.html#parallel-running

    +0

    parallel =「methods」在我的情況下是不可能的,因爲我沒有在每個測試方法中實例化一個新的驅動程序,而是在BaseTest中實現,這意味着驅動程序是以每個類爲基礎實例化的。我以前嘗試過使用parallel =「classes」和thread-count = 12的4個活動節點,但它似乎仍然沒有在每個節點上並行運行5個會話(網格中的maxSession默認爲5)。也許maxSession的值只有在你的套件文件運行測試並行方法而不是類並行時才起作用。 – testphreak 2014-09-24 17:09:00

    +0

    無論你投擲多少個線程都無關緊要。如果你有一個測試類並且正在運行parallel = classes,那麼只會使用一個線程。 – 2014-09-24 21:52:15

    +0

    謝謝。所以說我有5個測試類,並且有parallel =「classes」和線程數5,這種情況下maxSession的行爲是什麼?我的期望是,它應該在運行測試的節點上並行啓動5個Firefox瀏覽器的測試。 – testphreak 2014-09-24 22:28:54

    0

    我會建議你添加@BeforeMethod並在@BeforeMethod初始化多個驅動程序實例,如果你想在5個瀏覽器中運行,你將有打開5個瀏覽器,即在@BeforeMethod中自己創建5個驅動程序實例。讓我知道你是否需要進一步的幫助。

    +0

    嘿先生,謝謝。我正在尋找一些可能的解決方案。您的解決方案是否涉及使用ThreadLocal?像這樣的...列表 drivers = threadLocalDriver.get(); – testphreak 2014-09-30 05:32:07

    +0

    試試這個:http://stackoverflow.com/questions/19067885/static-webdriver-instance-synchronization-in-java – 2014-09-30 16:37:08

    相關問題