2016-11-09 5 views
0

Ich arbeite an einem Projekt, um eine Website automatisch mit Selen zu testen. Das ist meine Hauptklasse, die ich ausführen mag:Invoke Klasse in einer anderen Klasse

package Login; 

import static org.junit.Assert.assertTrue; 

import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.ie.InternetExplorerDriver; 
import org.openqa.selenium.support.ui.ExpectedConditions; 
import org.openqa.selenium.support.ui.WebDriverWait; 
import org.testng.annotations.Parameters; 
import org.testng.annotations.Test; 

public class Test{ 

WebDriver driver; 
String baseUrl; 

private StringBuffer verificationErrors = new StringBuffer(); 

@Test 
@Parameters("browser") 
public void LoginDebiteurVerkeerdPage(String browserName) { 

    if(browserName.equalsIgnoreCase("firefox")) 
    { 
     System.setProperty("webdriver.gecko.driver","C:\\Users\\cursus\\Downloads\\geckodriver.exe"); 
     driver=new FirefoxDriver(); 
    } 
    else if(browserName.equalsIgnoreCase("chrome")) 
    { 
     System.setProperty("webdriver.chrome.driver", "C:\\Users\\cursus\\Downloads\\chromedriver.exe"); 
     driver=new ChromeDriver(); 
    } 
    else if(browserName.equalsIgnoreCase("IE")) 
    { 
     System.setProperty("webdriver.ie.driver", "C:\\Users\\cursus\\Downloads\\IEDriverServer_x64_2.53.1\\IEDriverServer.exe"); 
     driver=new InternetExplorerDriver(); 
    } 

    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    baseUrl = "https://www.l.nl/"; 
    driver.get(baseUrl + "/"); 

    // Testscases 
    Here i wanna invoke a few testcases that are in other classes. 

    // For example: LoginLogout (class LoginLogout) 
    // For example: LoginWrongusername (class LoginWrongusername) 
    // For example: LoginWrongpassword (class Loginwrongpassword) 

    driver.close(); 
} 

} 

Ich mag die Testfälle in einer anderen Klasse haben, so ist es strukturiert werden und wartbar.

Wie kann ich diese Klassen (meine Testfälle) in meiner Klasse "Test" aufrufen?

Danke, Piet

Antwort

0

Sie könnten einige statische Methode innerhalb jeder dieser Klassen, die Sie in Test und fügen Sie alle Szenarien auf sie ausführen möchten definieren. Beispielsweise.

public class LoginLogout(){ 

    public static executeScenarios(Driver driver){ 
     //your code here 
    } 
} 

in Ihrer Testklasse:

LoginLogout.executeScenarios(driver); 
LoginWrongusername.executeScenarios(driver); 
... 

Auch konnte man alles verkaufen Klassen mit den Szenarien, dass von einer gemeinsamen Klasse erweitert, wo der Fahrer initialisiert wird, und die Sie nur den Browser zu übergeben haben zu der Methode.

Ich hoffe, es hilft Ihnen

Verwandte Themen