Monday, 30 June 2014

Paramerization With Selenium

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