-> @DataProvider annotations in TestNG is important for data driven framework in selenium.
-> @DataProvider Annotation of testng framework provides us a facility of storing and preparing data set In method.
-> Task for @DataProvider Annotation is supplying data for test method. That means we can configure data with in the @DataProvider annotations and use those data inside the @Test methods.
-> @dataprovider method should return an Object[][] with data.
-> we have to create two dimensional array in @DataProvider annotation data to stored the data.
Example:
Bellow given example will retrieve userid and password one by one from @DataProvider annotated method and will feed them In LogIn_Test(String Usedid, String Pass) one by one. Run this example In your eclipse and observe result.
public class Sample_Login {
WebDriver driver = new FirefoxDriver();
@BeforeTest
public void setup() throws Exception {
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.get("http://only-testing-blog.blogspot.in/2014/05/login.html");
}
@AfterTest
public void tearDown() throws Exception {
driver.quit();
}
//This method will return two dimensional array.
//This method behaves as data provider for LogIn_Test method.
@DataProvider
public Object[][] LoginCredentials(){
//Created two dimensional array with 4 rows and 2 columns.
//4 rows represents test has to run 4 times.
//2 columns represents 2 data parameters.
Object[][] Cred = new Object[4][2];
Cred[0][0] = "UserId1";
Cred[0][1] = "Pass1";
Cred[1][0] = "UserId2";
Cred[1][1] = "Pass2";
Cred[2][0] = "UserId3";
Cred[2][1] = "Pass3";
Cred[3][0] = "UserId4";
Cred[3][1] = "Pass4";
return Cred; //Returned Cred
}
//Give data provider method name as data provider.
//Passed 2 string parameters as LoginCredentials() returns 2 parameters In object.
@Test(dataProvider="LoginCredentials")
public void LogIn_Test(String Usedid, String Pass){
driver.findElement(By.xpath("//input[@name='userid']")).clear();
driver.findElement(By.xpath("//input[@name='pswrd']")).clear();
driver.findElement(By.xpath("//input[@name='userid']")).sendKeys(Usedid);
driver.findElement(By.xpath("//input[@name='pswrd']")).sendKeys(Pass);
driver.findElement(By.xpath("//input[@value='Login']")).click();
String alrt = driver.switchTo().alert().getText();
driver.switchTo().alert().accept();
System.out.println(alrt);
}
}
testng.xml file to run this example Is as bellow.
<suite name="Simple Suite">
<test name="Simple Skip Test">
<classes>
<class name = "Testng_Pack.Sample_Login"/>
</classes>
</test>
</suite>
After run the above code, the user id and password entered one by one in above URL.
A nice article here with some useful tips for those who are not used-to comment that frequently. Thanks for this helpful information I agree with all points you have given to us. I will follow all of them.
ReplyDeleteSelenium Training in Velachery |
Best Selenium Training Institute in Chennai