Automation Using Selenium Webdriver
Showing posts with label @DataProvider TestNG Real time project Data-Driven Testing Example. Show all posts
Showing posts with label @DataProvider TestNG Real time project Data-Driven Testing Example. Show all posts

Monday 17 October 2016

@DataProvider TestNG Real time Project Data-Driven Testing Example

 TestNG Selenium Data-Driven Testing Example
Suppose we want to do multiple searches in google by using our search method, we would want to pass in different search strings each time we call the method. In this example, I will demonstrate data-driven testing to do multiple searches in google.
We will modify our example further and introduce a parameter to our search method. Since we will be searching multiple times, we will keep the search method name generic, call it searchGoogle(). We will provide the data using a@DataProvider method called searchStrings() which returns “TestNG” and “Selenium” as the search keywords. The@Test annotation is modified to include searchGoogle as the dataProvider.

TestNGSeleniumDataDrivenSearchExample

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.ui.ExpectedCondition;

import org.openqa.selenium.support.ui.WebDriverWait;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;

import org.testng.annotations.AfterSuite;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.DataProvider;

import org.testng.annotations.Test;



@ContextConfiguration("driver_context.xml")

public class TestNGSeleniumDataDrivenSearchExample extends

        AbstractTestNGSpringContextTests {

    private WebDriver driver;



    @BeforeClass

    public void printBrowserUsed() {

        System.out.println("Driver used is: " + driver);

    }



    @Test(dataProvider = "searchStrings")

    public void searchGoogle(final String searchKey) {

        System.out.println("Search " + searchKey + " in google");

        driver.navigate().to("http://www.google.com");

        WebElement element = driver.findElement(By.name("q"));

        System.out.println("Enter " + searchKey);

        element.sendKeys(searchKey);

        System.out.println("submit");

        element.submit();

        (new WebDriverWait(driver, 10)).until(new ExpectedCondition() {

            public Boolean apply(WebDriver d) {

                return d.getTitle().toLowerCase()

                        .startsWith(searchKey.toLowerCase());

            }

        });

        System.out.println("Got " + searchKey + " results");

    }



    @DataProvider

    private Object[][] searchStrings() {

        return new Object[][] { { "TestNG" }, { "Selenium" } };

   }



    @AfterSuite

   public void quitDriver() throws Exception {
        driver.quit();

    }

OUTPUT::
Driver used is: FirefoxDriver: firefox on WINDOWS (ab3f6869-6669-4ccf-8e8f-9479f35aa790)

Search TestNG in google

Enter TestNG

submit

Got TestNG results

Search Selenium in google

Enter Selenium

submit

Got Selenium results



===============================================

TestNgSeleniumSuite

Total tests run: 2, Failures: 0, Skips: 0

===============================================