我有两个测试用例-“ Signup.java”,“ Login.java”。
Login.java
public class Login extends BaseTest{
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "www.xyz.com";
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
@Test
public void testLogin() throws Exception {
driver.get(baseUrl);
WebElement username=driver.findElement(By.id("username"));
username.sendKeys(user);
driver.findElement(By.id("password")).sendKeys(pwd);
driver.findElement(By.xpath("//div[4]/div/button")).click();
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
SignUp.java
public class SignUp extends BaseTest{
private WebDriver driver;
private String baseUrl;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "www.xyz.com";
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testSignUp() throws Exception {
driver.get(baseUrl+"/");
driver.findElement(By.id("firstname")).sendKeys("test");
driver.findElement(By.id("lastname")).sendKeys("test");
driver.findElement(By.id("password")).sendKeys("test");
driver.findElement(By.id("confirmPassword")).sendKeys("test");
driver.findElement(By.id("email")).sendKeys("[email protected]");
driver.findElement(By.name("accepted_tandc")).click();
driver.findElement(By.xpath("//button[contains(.,'Submit')]")).click();
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
}
BaseTest.java
public abstract class BaseTest {
protected String user="[email protected]";
protected String pwd="123";
public static String baseUrl;
protected static WebDriver driver;
private static StringBuffer verificationErrors = new StringBuffer();
@BeforeClass
public static void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "www.xyz.com";
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@AfterClass
public static void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
}
有一个名为AllTests.java的测试套件
@RunWith(Suite.class)
@SuiteClasses({SignUp.class,Login.class,})
public class AllTests {
}
现在,当我运行AllTests.java时,它将首先打开浏览器并运行第一个测试用例,然后关闭浏览器。然后打开浏览器以执行第二个测试用例。
我的问题是当我运行测试套件时,浏览器需要在执行所有测试后关闭。无需打开/关闭所有测试用例的浏览器。首先打开浏览器并执行注册,然后执行登录然后关闭。这是我需要的过程。
谢谢。
使用BeforeSuite
和AfterSuite
分别打开驱动程序和关闭驱动程序。然后BeforeClass
检查驱动程序实例是否已初始化(如果在套件中运行),如果尚未初始化,则在中对其进行初始化BeforeClass
。放置一些变量,您可以使用该变量来了解您是否正在套件中运行,并使用该变量来决定是否关闭浏览器Afterclass
。如果它在套件中运行,请不要关闭它,否则请关闭它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句