Wie laufen mehrere test-Klassen in testng suite nur mit einer web-driver-Instanz?

Habe ich testng.xml Datei wie unten...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="false">
  <test name="Test">
    <classes>
      <class name="com.cigital.myssi.automation.tests.SoftwareTest"/>         
      <class name="com.cigital.myssi.automation.tests.LoginTest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

Habe ich die entsprechende test-Klassen wie unten....

SoftwareTest.java

public class SoftwareTest extends Verification {
    private WebDriver driver;
    private SoftwarePage softwarepage;
    private LoginPage loginpage;
    private Log log = LogFactory.getLog(SoftwareTest.class);

    @BeforeClass(alwaysRun = true)
    public void setup() throws InterruptedException {
        driver = DriverFactory.getDriverInstance();
        softwarepage = new SoftwarePage(driver);
        loginpage = new LoginPage(driver);
    }

    @Test(description="Create Critical Software")
    public void CreateCriticalProject()
    {
        log.info("Create Critical Software test case Started...............");
        assertEquals(true, loginpage.gotoSignPage());
        assertEquals(true,loginpage.LogintoPortal("[email protected]", "Pass@123", "Welcome"));
        assertEquals(true,softwarepage.CreateCriticalSoftware(DataGenerator.RandomNumber("SAMPLE")));
        assertEquals(true,loginpage.Logout());
    }

    @AfterClass(alwaysRun = true)
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
}

}

LoginTest.java

public class LoginTest extends Verification {

    private WebDriver driver;
    private LoginPage loginPage;

    @BeforeClass(alwaysRun = true)
    public void setup() throws InterruptedException {
        driver = DriverFactory.getDriverInstance();
        loginPage = new LoginPage(driver);
    }   

    @Test(description = "SigninPage")
    public void SigninPage() {
        assertEquals(true, loginPage.gotoSignPage());
    }

    @Test(description="Login to Portal",dependsOnMethods="SigninPage",dataProviderClass=CredentialsProvider.class,dataProvider="testCasesLogin")
    public void LoginToPortal(UserBean newbean) throws InterruptedException
    {
        assertEquals(true,loginPage.LogintoPortal(newbean.getUsername(),newbean.getPassword(),newbean.getTitle()));
    }

    @AfterClass(alwaysRun = true)
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
}
}

Habe ich initiiert webdrive in beiden Klassen. Das problem ist, wenn der erste test also SoftwareTest ausgeführt wird, dann wird der browser beendet. Aber, ich möchte führen Sie die nächsten test also LoginTest in Ordnung. Kann mir jemand helfen, wie kann ich das erreichen?

Grüße,

  • Hallo..können Sie erstellen, die vor und nach der suite zu starten und beenden Sie den browser.. Nur einmal, wenn Sie beabsichtigt ist die gleiche..
Schreibe einen Kommentar