2016-06-29 136 views
2

我有我的testng.xml文件,如下所示:TestNG的運行測試順序

<suite name="Excel Control File Suite Set" 
     thread-count="30" configfailurepolicy="continue"> 

     <test name="Excel Test" parallel="instances"> 
      <classes> 
       <class name="com.selenium.engine.TestRunner1"> 
       </class> 
      </classes> 
     </test> 
     <test name="Excel Test 1" parallel="instances"> 
      <classes> 
       <class name="com.selenium.engine.TestRunner2"> 
       </class> 
      </classes> 
     </test> 
    </suite> 

該文件第一次打電話給我TestRunner1並讓所有的測試用例實例,然後調用TestRunner2,收集所有的實例和啓動與所有測試實例一起執行。我如何控制流程,以便首先運行TestRunner1,一旦執行完成,我就可以從文件啓動TestRunner2。如果需要更多信息或者我不清楚,請告訴我。

回答

2

變化平行=「實例」平行=「方法」將執行TestRunner1和TestRunner2的方法平行但TestRunner2將TestRunner1

完成所需的改變後執行: -

<test name="Excel Test" parallel="methods"> 
    <classes> 
     <class name="com.selenium.engine.TestRunner1"> </class> 
    </classes> 
</test> 
<test name="Excel Test 1" parallel="methods"> 
    <classes> 
     <class name="com.selenium.engine.TestRunner2"> </class> 
    </classes> 
</test> 
  • 平行= 「方法」:TestNG的運行在單獨的線程你所有的測試方法。依賴方法也將在單獨的線程中運行,但它們將遵守您指定的順序。

  • parallel =「tests」:TestNG將在同一個線程中的同一個標籤中運行所有的方法,但每個標籤都將在一個單獨的線程中。這使您可以將所有不是線程安全的類組合在一起,並確保它們都將在同一個線程中運行,同時利用TestNG使用盡可能多的線程來運行測試。

  • parallel =「classes」:TestNG將在同一個線程中運行同一個類中的所有方法,但每個類都將在一個單獨的線程中運行。

  • parallel =「instances」:TestNG將在同一個線程中運行同一個實例中的所有方法,但兩個不同實例上的兩個方法將運行在不同的線程中。

參考: -
TestNG Documentation on Parallel running

+0

非常感謝,這個工作:) – user1658435

+0

嗨,我有一個問題在這裏。當我使用parallel =「methods」時,並不是所有的實例都啓動了。我嘗試在測試級別和套件級別設置thread-count =「30」,這無助於僅啓動2-3個線程。我希望我所有的30個節點都能正確使用。你對此有任何想法。 – user1658435

+0

當parallel =「methods」被設置時,線程數被應用於方法,每個類的30個方法應該在單獨的線程中執行,並且一旦一個類中的所有方法的執行完成,其他類將被執行 – manishgdev