有两种方式:
1.使用testng.xml----@parameter ,适合参数化简单的测试数据
2.数据提供者 ------@dataProvider,适合复杂的测试数据,如对象、从数据库和文件中读取的数据等。
一.使用@parameter参数化登录脚本
脚本代码:
@Test
@Parameters({"username","pwd","expect"})
public void testLogin(String username,String pwd,String expected) {
WebElement name = driver.findElement(By.id("login_name"));
name.sendKeys(username);
WebElement passwd = driver.findElement(By.id("user_pass"));
passwd.sendKeys(pwd);
WebElement clk = driver.findElement(By.className("btn_01"));
clk.click();
WebElement message = driver.findElement(By.className("error2"));
System.out.print(message.getText());
assertEquals(expected,message.getText());
}
Testng.xml配置参数:
xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
<test name="Test">
<parameter name="username" value="ranling"/>
<parameter name="pwd" value=""/>
<parameter name="expect" value="用户名或密码不能为空"/>
<classes>
<class name="com.sample.sampleTest"/>
classes>
test>
suite>
注.在testng.xml文件中通过
1.在suit范围内定义某个参数对所有的test都有效
2.在test范围内定义某个参数只针对当前test有效
3.在suit和test中有某个相同的参数,test范围内的参数会自动屏蔽suit中的参数
二.使用@dataProvider参数化登录脚本
//1.声明数据提供者,并命名
@DataProvider(name="keyword")
public Object[][] keywordProiverd(){
return new Object[][]{{"hi"},{"nihao"}};
}
//2.为测试方法提供测试数据
@Test(dataProvider="keyword")
public void testProvider(String key){
System.out.println(key);
}