10.2.3、扩展测试用例
在上一节确定了测试项目的基本结构,在此基础上来开发新的测试用例,这小节我们就来创建一组验证登录的测试用例。
上图这种提示信息,因为要验证登录失败的情况,所以要获取错误的提示信息。
首先打开 LoginPage.java 文件,在 page 层添加获取错误提示信息的元素定位
添加下图错误提示的封装。
查看捕捉错误提示的代码
----------------------------------------------------------------------------------------------------------------------------------------------------------------
package mail.test.cases;
import static org.testng.Assert.assertEquals;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import mail.test.page.LoginPage;
public class LoginTestData {
private WebDriver driver;
private String baseUrl;
private LoginPage page;
@BeforeTest
public void setUp() throws Exception {
this.driver = new FirefoxDriver();
this.baseUrl = "http://www.126.com";
this.page = new LoginPage(this.driver, baseUrl);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
// 定义对象数组
@DataProvider(name = "user")
public Object[][] Users() {
return new Object[][]{{"", "", "请输入帐号"},{"test", "", "请输入密码"},{" ", "123456", "帐号格式错误"},{"error0", "error0", "帐号或密码错误"},};
}
@Test(dataProvider = "user")
public void testCase(String username, String password, String expectText) throws InterruptedException {
this.page.login(username,password);
Thread.sleep(2000);
String text = this.page.login_error();
assertEquals(expectText, text);
}
@AfterTest
public void tearDown() throws Exception {
driver.quit();
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------
这一组测试用例的实现与上一条测试用例差别较大,此处充分利用了 testNG 单元测试框架所提供的参数化功能;实现一条测试用例,通过不同的参数变化实现了多条测试用例的验证。
最后,不要忘记将新的测试用例加入到 testng.xml 配置文件中。