2016-06-29 14 views
2

Ich habe meine testng.xml Datei wie folgt:TestNG laufen Tests nacheinander

<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> 

Diese Datei meine TestRunner1 zuerst ruft und alle Testfall Instanzen bekommen und dann TestRunner2 Aufruf, das Sammeln aller Instanzen und starten Ausführung mit allen Testinstanzen zusammen. Wie kann ich den Fluss so steuern, dass ich zuerst TestRunner1 starte und sobald die Ausführung abgeschlossen ist, kann ich den TestRunner2 aus der Datei starten. Bitte lassen Sie mich wissen, wenn weitere Informationen benötigt werden oder wenn ich nicht klar bin.

Antwort

2

ändern parallel = "Instanzen" zu parallel = "Methoden", die die Methoden der TestRunner1 und TestRunner2 ausführen werden parallel aber TestRunner2 wird nach Abschluss der TestRunner1

erforderliche Änderung ausgeführt werden: -

<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> 
  • parallel = "Methoden": TestNG werden alle Ihre Testmethoden in separaten Threads ausgeführt werden. Abhängige Methoden werden auch in separaten Threads ausgeführt, respektieren jedoch die von Ihnen angegebene Reihenfolge.

  • parallel = "Tests": TestNG führt alle Methoden im selben Tag im selben Thread aus, aber jedes Tag befindet sich in einem separaten Thread. Dadurch können Sie alle nicht threadsicheren Klassen gruppieren und sicherstellen, dass alle in demselben Thread ausgeführt werden, während Sie TestNG nutzen und so viele Threads wie möglich verwenden, um Ihre Tests auszuführen.

  • parallel = "Klassen": TestNG wird alle Methoden in derselben Klasse im selben Thread ausführen, aber jede Klasse wird in einem separaten Thread ausgeführt.

  • parallel = "Instanzen": TestNG führt alle Methoden in derselben Instanz im selben Thread aus, aber zwei Methoden auf zwei verschiedenen Instanzen werden in verschiedenen Threads ausgeführt.

Referenz: -
TestNG Documentation on Parallel running

+0

Vielen Dank, arbeitete diese :) – user1658435

+0

Hey, ich habe hier ein Problem. Wenn ich parallel = "Methoden" verwende, werden nicht alle Instanzen gestartet. Ich habe versucht, thread-count = "30" auf Testebene und Suite-Ebene zu setzen und dies half nicht nur 2-3 Threads gestartet werden. Ich möchte, dass alle meine 30 Knoten richtig genutzt werden. Hast du eine Ahnung davon? – user1658435

+0

Wenn parallel = "Methoden" gesetzt ist, dann wird die Anzahl der Threads für die Methoden angewendet und 30 Methoden jeder Klasse sollten in einem separaten Thread ausgeführt werden. Sobald die Ausführung aller Methoden in einer Klasse abgeschlossen ist, wird die andere Klasse ausgeführt – manishgdev