有兩種方式:
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> <!-- Test -->
</suite> <!-- Suite -->
注.在testng.xml文件中通過<parameter/>設置參數、參數值,但要注意範圍,<suite>和<test>標籤定義了suite和test兩種測試範圍。滿足規律如下:
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);
}