2017-04-21 4 views
0

Ich bin neu in Selen und möchte zwei Klassen oder zwei Methoden gleichzeitig und nicht nacheinander ausführen. Ich habe viele Links speziell verwiesen this Link aber vergeblich. Unten ist mein Code von testing.xml (für Testmethoden), wo testStageDashboard und prodDashboards1 Testmethoden innerhalb eines einzigen Klasse sind:Wie man Methoden oder Klassen parallel auf Selen Java mit selen java ausführt

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Parallel test suite" parallel="methods" thread-count="2"> 
    <test name="Test 1"> 
     <classes> 
      <class name="com.sd.selenium.FirstTestSelenium" /> 
      <!-- <class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call" 
       /> --> 
     </classes> 

    </test> 
</suite> 

Testing.xml (für Testklassen):

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Parallel test suite" parallel="classes" thread-count="2"> 
    <test name="Test 1"> 
    <classes> 
     <class name="com.sd.selenium.FirstTestSelenium"/> 
     <class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call"/> 
    </classes> 
    </test> 
</suite> 

wo FirstTestSelenium und Monday_Test_Selenium_Till_Scrum_Call sind zwei verschiedene Klassen unter verschiedenen Paketen. Muss ich irgendetwas in Java für Browser-Knoten oder etwas schreiben? und wie läuft das? Was ich getan habe, ist, dass ich rechts auf mein Projekt geklickt habe und als> Test NG Test ausgeführt habe. Wird noch etwas benötigt? Vielen Dank im Voraus :)

Antwort

0

Überprüfen Sie, ob Sie @Test Annotation für Ihre Klassen/Methoden hinzugefügt haben, und geben Sie Browserdetails als Testparameter an. Hier ist ein Beispiel testng.xml Datei

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite" parallel="classes" thread-count="2"> 
    <test name="Test"> 
     <parameter name="myName" value="Test1"></parameter> 
     <parameter name="browserType" value="chrome"></parameter> 
     <parameter name="os" value="WINDOWS"></parameter> 
     <classes> 
      <class name="com.testng.session1.Session1" /> 
      <class name="com.testng.session1.Session2" /> 
     </classes> 
    </test> <!-- Test --> 
</suite> <!-- Suite --> 

Hier ist der Beispielcode für die Klassen:

public class Session1 { 
    @Test 
    @Parameters ({"myName","browserType"}) 
    public void login(String name, String browserType){ 
     if(browserType.equalsIgnoreCase("firefox")){ 
     WebDriver driver=new FirefoxDriver(); 
     driver.get("www.google.co.in/"); 
     } 
     else{ 
      System.setProperty("webdriver.chrome.driver", "E:\\Selenium\\Jars\\chromedriver_win32\\chromedriver.exe"); 
       WebDriver driver = new ChromeDriver(); 
       driver.get("https://www.google.co.in/"); 
     } 
     System.out.println("login Successful"); 
      System.out.println(name+"Thread ID: "+Thread.currentThread().getId()); 
    } 

}

+0

ja es funktioniert gut, aber ein weiteres Add-on ist, dass wir testng.xml in src-Ordner und führen Sie Ihr Projekt als TestNgSuite only.Ich brauche für Methoden sowie. Können Sie mir dabei helfen? –

+0

Fügen Sie @Test Annotation für alle Methoden hinzu, die Sie parallel und in der obigen TestNg.xml Datei ausführen möchten, ändern Sie einfach parallel zu "Methoden". Es wird für Sie arbeiten. Wir müssen Methoden in der TestNg.xml-Datei nicht erwähnen. – radhikab

+0

Und es hängt auch von der Anzahl der Threads ab. Wenn Sie 2 angeben, werden jedes Mal nur 2 Threads parallel ausgeführt. – radhikab

0

Unten ist der Code für Methoden parallel mit zwei Threads ausgeführt wird.

Testclass:

package com.sd.selenium; 

import org.testng.annotations.Test; 

public class FirstTestSelenium { 

    @Test 
    public void test1(){ 
     System.out.println("method1"); 
    } 

    @Test 
    public void test2(){ 
     System.out.println("method2"); 
    } 

} 

Testng.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Parallel test suite" parallel="methods" thread-count="2"> 
    <test name="Test 1"> 
     <classes> 
      <class name="com.sd.selenium.FirstTestSelenium" /> 
      <!-- <class name="com.sd.selenium.practice.Monday_Test_Selenium_Till_Scrum_Call" 
       /> --> 
     </classes> 

    </test> 
</suite> 

Lassen Sie mich wissen, wenn Sie irgendwelche Ausnahmen bekommen.

+0

Danke @Akarsh, aber es funktioniert nicht –