實際 - 我看到的行爲是它按順序在一個會話中運行所有測試(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上。
謝謝,感謝幫助!
parallel =「methods」在我的情況下是不可能的,因爲我沒有在每個測試方法中實例化一個新的驅動程序,而是在BaseTest中實現,這意味着驅動程序是以每個類爲基礎實例化的。我以前嘗試過使用parallel =「classes」和thread-count = 12的4個活動節點,但它似乎仍然沒有在每個節點上並行運行5個會話(網格中的maxSession默認爲5)。也許maxSession的值只有在你的套件文件運行測試並行方法而不是類並行時才起作用。 – testphreak 2014-09-24 17:09:00
無論你投擲多少個線程都無關緊要。如果你有一個測試類並且正在運行parallel = classes,那麼只會使用一個線程。 – 2014-09-24 21:52:15
謝謝。所以說我有5個測試類,並且有parallel =「classes」和線程數5,這種情況下maxSession的行爲是什麼?我的期望是,它應該在運行測試的節點上並行啓動5個Firefox瀏覽器的測試。 – testphreak 2014-09-24 22:28:54