Parameterization in Selenium: In the most cases you will come across the scenario where the business logic requires a hugely varying number of test cases. Basically parameterized tests allow to developer to run the same over and over again using different values.
Test NG lets you pass parameters
directly to your test method in two different ways:
- With testng.xml
- With Data Provider
We define the simple parameters in the testng.xml file. When you need to pass complex parameters or parameters that need to be created from java (complex object ,object read from the properties file or database etc.) in such cases parameters can be pass using Data Providet.
package packageName;
import
java.util.concurrent.TimeUnit;
import
org.openqa.selenium.By;
import
org.openqa.selenium.WebDriver;
import
org.openqa.selenium.WebElement;
import
org.openqa.selenium.firefox.FirefoxDriver;
import
org.testng.Assert;
import
org.testng.annotations.BeforeTest;
import
org.testng.annotations.DataProvider;
import
org.testng.annotations.Test;
import
org.testng.annotations.AfterMethod;
public
class
ClassName {
WebDriver
driver;
private
String baseurl;
@Test(dataProvider
= "getData")
public
void
gmailverify(String username, String pwd,String message) throws
InterruptedException {
System.out.println(username+"----"+pwd+"---"+message);
WebElement
userName = driver.findElement(By.xpath(".//*[@id='Email']"));
userName.clear();
userName.sendKeys(username);
WebElement
Password = driver.findElement(By.xpath(".//*[@id='Passwd']"));
Password.clear();
Password.sendKeys(pwd);
driver.findElement(By.xpath(".//*[@id='signIn']")).submit();
Thread.sleep(2000);
String msg = driver.findElement(By.className("error-msg")).getText();
Assert.assertEquals(message, msg);
}
@BeforeTest
public
void
setUp() {
driver
= new
FirefoxDriver();
baseurl =
"http://www.gmail.com/";
driver.get(baseurl);
driver.manage().timeouts().implicitlyWait(30,
TimeUnit.SECONDS);
}
@AfterMethod
public
void
tearDown() {
// driver.quit();
}
@DataProvider
public
Object[][] getData(){
Object[][] data = new
Object[3][3];
data[0][0]= "sdfsf";
data[0][1]="Pass@123";
data[0][2]="The
email or password you entered is incorrect. ?";
data[1][0]="
";
data[1][1]="word@123";
data[1][2]="Enter
your email address.";
data[2][0]="tommy_...@gmail.com";
data[2][1]="
";
data[2][2]="Enter
your password.";
return
data;
}
}
No comments:
Post a Comment