{"id":109110,"date":"2021-03-09T10:00:00","date_gmt":"2021-03-09T08:00:00","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=109110"},"modified":"2021-03-08T11:39:55","modified_gmt":"2021-03-08T09:39:55","slug":"parameterization-with-dataprovider-in-testng","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html","title":{"rendered":"Parameterization with DataProvider in TestNG"},"content":{"rendered":"<p>Parameterization in TestNG is also known as <strong>Parametric Testing<\/strong> which allows testing an application against multiple test data and configurations. Though we have to consider the fact that exhaustive testing is impossible, however, it is necessary to check the behavior of our application against different sets of data that an end-user can pass. Time and manual effort saving have always been a primary reason for automating an application against all possible data combinations.<\/p>\n<p>Hardcoding the test values every time in our test scripts is never said to be a good automation practice. To overcome this, the <a href=\"https:\/\/www.pcloudy.com\/integration-of-testng-framework-with-pcloudy-device-lab\/\" target=\"_blank\" rel=\"noreferrer noopener\">TestNG framework<\/a> helps us with a parameterization feature in which we can parameterize different test values and even keep our test data separate from our test scripts.<\/p>\n<p><strong>Let\u2019s consider an example that highlights the need for parameterization in test automation.<\/strong><\/p>\n<p>There are various websites that behave differently depending upon the different data entered by different end-users. Suppose, there\u2019s a flight ticket booking web application which the end-users are using to check the flight availability for desired dates. We expect our application to show appropriate results according to the different places of origin and destination that the user enters. Hence, to test our application, we would pass different test data against the source and destination place to check if our application gives the correct results instead of the incorrect ones.<\/p>\n<p><strong>Parameterization in TestNG can be achieved in two ways:<\/strong><\/p>\n<ol class=\"wp-block-list\">\n<li>Using Parameter annotation with TestNG.xml file<\/li>\n<li>Using DataProvider annotation<\/li>\n<\/ol>\n<p>In this article, we would be primarily focusing on the use of DataProvider in TestNG.<\/p>\n<h2 class=\"wp-block-heading\">Significance of DataProvider in TestNG<\/h2>\n<p>Many times it so happens that we have to run our test methods against a huge set of test data to monitor application variant responses. In such cases, creating test scripts using @Parameter annotation with XML file might become a tedious process. To bypass this TestNG comes with @DataProvider annotation which helps us to achieve Data-Driven Testing of our application.<\/p>\n<p>The DataProvider in TestNG prepares a list of test data and returns an array object of the same.<\/p>\n<p>It is highly recommended to create a separate class file for TestNG DataProvider, this helps in maintaining the huge test data separately. If the test data values are small in number then you can also setup DataProvider in the same java file in which you have created your test cases.<\/p>\n<h2 class=\"wp-block-heading\">Syntax of TestNG DataProvider<\/h2>\n<div>\n<div id=\"highlighter_202136\" class=\"syntaxhighlighter  c\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"c plain\">@DataProvider(name = \u201cdata - provider - name\u201d, parallel = <\/code><code class=\"c keyword bold\">true<\/code><code class=\"c plain\">)<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"c keyword bold\">public<\/code> <code class=\"c plain\">Object[][] supplyTestData() {<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">return<\/code> <code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">Object[][] {<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">{\u201c<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">First - test - value\u201d<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}, {\u201c<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Second - test - value\u201d<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"c plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\">Different components of the above syntax:<\/h3>\n<ol class=\"wp-block-list\">\n<li>The data provider method is set as a separate function from a test method, hence, it is marked with a @DataProvider annotation with below default parameters provided by TestNG:\n<ol>\n<li><strong>name:<\/strong> This highlights the name of a particular data provider. Further, this name is used with the @Test annotated method that wants to receive data from the @DataProvider. If the name parameter is not set in @DataProvider, then the name of this data provider will be automatically set as the name of the method.<\/li>\n<li><strong>parallel:<\/strong> If this is set as true, the test method receiving value from the data provider will run in parallel. The default value is false.<\/li>\n<\/ol>\n<\/li>\n<li>Since the TestNG DataProvider method returns a 2D list of objects, it is mandatory to create a data provider method of Object[][] type.<\/li>\n<\/ol>\n<p><strong>Note: <\/strong>To use DataProvider in TestNG, we need to import TestNG library: org.testng.annotations.DataProvider<\/p>\n<h2 class=\"wp-block-heading\">Using DataProvider in TestNG framework<\/h2>\n<p>Now that we have understood the basic use of TestNG DataProvider, let\u2019s have a look at some practical examples of flight ticket booking with the test data of multiple sources and destinations.<\/p>\n<h3 class=\"wp-block-heading\">Java Test Class:<\/h3>\n<div>\n<div id=\"highlighter_741283\" class=\"syntaxhighlighter  c\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"c plain\">import org.openqa.selenium.By;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"c plain\">import org.openqa.selenium.WebDriver;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"c plain\">import org.openqa.selenium.WebElement;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"c plain\">import org.openqa.selenium.chrome.ChromeDriver;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"c plain\">import org.openqa.selenium.chrome.ChromeOptions;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"c plain\">import org.testng.annotations.AfterMethod;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"c plain\">import org.testng.annotations.BeforeMethod;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"c plain\">import org.testng.annotations.Test;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"c plain\">import io.github.bonigarcia.wdm.WebDriverManager;<\/code><\/div>\n<div class=\"line number10 index9 alt1\">&nbsp;<\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">class<\/code> <code class=\"c plain\">SampleTestNgTest {<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">private<\/code> <code class=\"c plain\">WebDriver driver;<\/code><\/div>\n<div class=\"line number15 index14 alt2\">&nbsp;<\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@BeforeMethod<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">setup() {<\/code><\/div>\n<div class=\"line number18 index17 alt1\">&nbsp;<\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebDriverManager.chromedriver().setup();<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">ChromeOptions ops = <\/code><code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">ChromeOptions();<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">ops.addArguments(\u201c\u2013disable - notifications\u201d);<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver = <\/code><code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">ChromeDriver(ops);<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.get(\u201chttps: <\/code><code class=\"c comments\">\/\/www.easemytrip.com\/\u201d);<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.manage().window().maximize();<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number26 index25 alt1\">&nbsp;<\/div>\n<div class=\"line number27 index26 alt2\">&nbsp;<\/div>\n<div class=\"line number28 index27 alt1\">&nbsp;<\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@Test(dataProvider = \u201ctravel - source - destination\u201d, dataProviderClass = TravelDataProvider.<\/code><code class=\"c keyword bold\">class<\/code><code class=\"c plain\">)<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">travel(String mySource, String myDestination) throws InterruptedException {<\/code><\/div>\n<div class=\"line number31 index30 alt2\">&nbsp;<\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement source = driver.findElement(By.id(\u201cFromSector_show\u201d));<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.clear();<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.sendKeys(mySource);<\/code><\/div>\n<div class=\"line number35 index34 alt2\">&nbsp;<\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement destination = driver.findElement(By.id(\u201cEditbox13_show\u201d));<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.clear();<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.sendKeys(myDestination);<\/code><\/div>\n<div class=\"line number39 index38 alt2\">&nbsp;<\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Thread.sleep(2000);<\/code><\/div>\n<div class=\"line number41 index40 alt2\">&nbsp;<\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement searchButton = driver.findElement(By.cssSelector(\u201c#search &gt; input\u201d));<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">searchButton.click();<\/code><\/div>\n<div class=\"line number44 index43 alt1\">&nbsp;<\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">String actualTitle = driver.getTitle();<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">System.out.println(\u201cTitle<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">for<\/code> <code class=\"c plain\">source: \u201d+mySource + \u201dand destination: \u201d+myDestination + \u201d = \u201d+actualTitle);<\/code><\/div>\n<div class=\"line number48 index47 alt1\">&nbsp;<\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number50 index49 alt1\">&nbsp;<\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@AfterMethod<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">tearDown() throws InterruptedException {<\/code><\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Thread.sleep(2000);<\/code><\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.quit();<\/code><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number56 index55 alt1\">&nbsp;<\/div>\n<div class=\"line number57 index56 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><strong>Code Walkthrough:<\/strong><\/h3>\n<p>In the above code, we have used TestNG DataProvider attributes as the parameters of Test annotation. Since we have created a separate class for DataProvider, it is necessary to provide the DataProvider name and class. The \u201ctravel\u201d method parameters will automatically pick the values from the DataProvider list in the same order as they are defined. Please make sure that you are using the same DataProvider name in the Test annotation parameter else your test script would fail to execute.<\/p>\n<p>If you are creating a DataProvider object list in the same java class in which you have created your test cases, then passing the DataProvider class name becomes optional in the Test annotation.<\/p>\n<h3 class=\"wp-block-heading\"><strong>DataProvider Class:<\/strong><\/h3>\n<div>\n<div id=\"highlighter_526817\" class=\"syntaxhighlighter  c\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"c plain\">import org.testng.annotations.DataProvider;<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">class<\/code> <code class=\"c plain\">TravelDataProvider {<\/code><\/div>\n<div class=\"line number4 index3 alt1\">&nbsp;<\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@DataProvider(name = \u201ctravel - source - destination\u201d)<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">static<\/code> <code class=\"c plain\">Object[][] dataProviderMethod() {<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">return<\/code> <code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">Object[][] {<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">{\u201c<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dSingapore\u201d<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}, {\u201c<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dMumbai\u201d<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">};<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number17 index16 alt2\">&nbsp;<\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"c plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><strong>Code Walkthrough:<\/strong><\/h3>\n<p>Here we have created a simple DataProvider list for supplying multiple test data for our test automation. As mentioned above, DataProvider returns a 2-dimensional array object. We have used @DataProvider annotation here along with its \u201cname\u201d parameter, the same name has been used in our Test annotation parameter \u201cdataProvider\u201d in the previously linked code. Since we have created a data provider method in a separate class, it is mandatory to make the data provider method as static and use the \u201cdataProviderClass\u201d parameter to define the data provider class.<\/p>\n<h3 class=\"wp-block-heading\"><strong>Console Output:<\/strong><\/h3>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0.png\"><img decoding=\"async\" width=\"1024\" height=\"407\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-1024x407.png\" alt=\"\" class=\"wp-image-109125\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-1024x407.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-300x119.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-768x305.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0.png 1205w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Types of Parameters Used in TestNG DataProviders<\/h2>\n<p>TestNG supports two types of parameters that can be used with data provider methods for greater flexibility of our automation scripts.<\/p>\n<ol class=\"wp-block-list\">\n<li><strong>Method: <\/strong>To fulfill a scenario where we can use the same data provider method to supply different test data to different test methods, the method parameter can be deemed beneficial. Let\u2019s try this with an example:<\/li>\n<\/ol>\n<h3 class=\"wp-block-heading\"><strong>Java Test Class:<\/strong><\/h3>\n<div>\n<div id=\"highlighter_852164\" class=\"syntaxhighlighter  c\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<div class=\"line number58 index57 alt1\">58<\/div>\n<div class=\"line number59 index58 alt2\">59<\/div>\n<div class=\"line number60 index59 alt1\">60<\/div>\n<div class=\"line number61 index60 alt2\">61<\/div>\n<div class=\"line number62 index61 alt1\">62<\/div>\n<div class=\"line number63 index62 alt2\">63<\/div>\n<div class=\"line number64 index63 alt1\">64<\/div>\n<div class=\"line number65 index64 alt2\">65<\/div>\n<div class=\"line number66 index65 alt1\">66<\/div>\n<div class=\"line number67 index66 alt2\">67<\/div>\n<div class=\"line number68 index67 alt1\">68<\/div>\n<div class=\"line number69 index68 alt2\">69<\/div>\n<div class=\"line number70 index69 alt1\">70<\/div>\n<div class=\"line number71 index70 alt2\">71<\/div>\n<div class=\"line number72 index71 alt1\">72<\/div>\n<div class=\"line number73 index72 alt2\">73<\/div>\n<div class=\"line number74 index73 alt1\">74<\/div>\n<div class=\"line number75 index74 alt2\">75<\/div>\n<div class=\"line number76 index75 alt1\">76<\/div>\n<div class=\"line number77 index76 alt2\">77<\/div>\n<div class=\"line number78 index77 alt1\">78<\/div>\n<div class=\"line number79 index78 alt2\">79<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"c plain\">import org.openqa.selenium.By;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"c plain\">import org.openqa.selenium.WebDriver;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"c plain\">import org.openqa.selenium.WebElement;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"c plain\">import org.openqa.selenium.chrome.ChromeDriver;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"c plain\">import org.openqa.selenium.chrome.ChromeOptions;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"c plain\">import org.testng.annotations.AfterMethod;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"c plain\">import org.testng.annotations.BeforeMethod;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"c plain\">import org.testng.annotations.Test;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"c plain\">import io.github.bonigarcia.wdm.WebDriverManager;<\/code><\/div>\n<div class=\"line number10 index9 alt1\">&nbsp;<\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">class<\/code> <code class=\"c plain\">SampleTestNgTest {<\/code><\/div>\n<div class=\"line number13 index12 alt2\">&nbsp;<\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">private<\/code> <code class=\"c plain\">WebDriver driver;<\/code><\/div>\n<div class=\"line number15 index14 alt2\">&nbsp;<\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@BeforeMethod<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">setup() {<\/code><\/div>\n<div class=\"line number18 index17 alt1\">&nbsp;<\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebDriverManager.chromedriver().setup();<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">ChromeOptions ops = <\/code><code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">ChromeOptions();<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">ops.addArguments(\u201c\u2013disable - notifications\u201d);<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver = <\/code><code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">ChromeDriver(ops);<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.get(\u201chttps: <\/code><code class=\"c comments\">\/\/www.easemytrip.com\/\u201d);<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.manage().window().maximize();<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number26 index25 alt1\">&nbsp;<\/div>\n<div class=\"line number27 index26 alt2\">&nbsp;<\/div>\n<div class=\"line number28 index27 alt1\">&nbsp;<\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@Test(dataProvider = \u201ctravel - source - destination\u201d, dataProviderClass = TravelDataProvider.<\/code><code class=\"c keyword bold\">class<\/code><code class=\"c plain\">)<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">domesticTravel(String mySource, String myDestination) throws InterruptedException {<\/code><\/div>\n<div class=\"line number31 index30 alt2\">&nbsp;<\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement source = driver.findElement(By.id(\u201cFromSector_show\u201d));<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.clear();<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.sendKeys(mySource);<\/code><\/div>\n<div class=\"line number35 index34 alt2\">&nbsp;<\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement destination = driver.findElement(By.id(\u201cEditbox13_show\u201d));<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.clear();<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.sendKeys(myDestination);<\/code><\/div>\n<div class=\"line number39 index38 alt2\">&nbsp;<\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Thread.sleep(2000);<\/code><\/div>\n<div class=\"line number41 index40 alt2\">&nbsp;<\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement searchButton = driver.findElement(By.cssSelector(\u201c#search &gt; input\u201d));<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">searchButton.click();<\/code><\/div>\n<div class=\"line number44 index43 alt1\">&nbsp;<\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">String actualTitle = driver.getTitle();<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">System.out.println(\u201cTitle<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">for<\/code> <code class=\"c plain\">source: \u201d+mySource + \u201dand destination: \u201d+myDestination + \u201d = \u201d+actualTitle);<\/code><\/div>\n<div class=\"line number48 index47 alt1\">&nbsp;<\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number50 index49 alt1\">&nbsp;<\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@Test(dataProvider = \u201ctravel - source - destination\u201d, dataProviderClass = TravelDataProvider.<\/code><code class=\"c keyword bold\">class<\/code><code class=\"c plain\">)<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">internationalTravel(String mySource, String myDestination) throws InterruptedException {<\/code><\/div>\n<div class=\"line number53 index52 alt2\">&nbsp;<\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement source = driver.findElement(By.id(\u201cFromSector_show\u201d));<\/code><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.clear();<\/code><\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.sendKeys(mySource);<\/code><\/div>\n<div class=\"line number57 index56 alt2\">&nbsp;<\/div>\n<div class=\"line number58 index57 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement destination = driver.findElement(By.id(\u201cEditbox13_show\u201d));<\/code><\/div>\n<div class=\"line number59 index58 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.clear();<\/code><\/div>\n<div class=\"line number60 index59 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.sendKeys(myDestination);<\/code><\/div>\n<div class=\"line number61 index60 alt2\">&nbsp;<\/div>\n<div class=\"line number62 index61 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Thread.sleep(2000);<\/code><\/div>\n<div class=\"line number63 index62 alt2\">&nbsp;<\/div>\n<div class=\"line number64 index63 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement searchButton = driver.findElement(By.cssSelector(\u201c#search &gt; input\u201d));<\/code><\/div>\n<div class=\"line number65 index64 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">searchButton.click();<\/code><\/div>\n<div class=\"line number66 index65 alt1\">&nbsp;<\/div>\n<div class=\"line number67 index66 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">String actualTitle = driver.getTitle();<\/code><\/div>\n<div class=\"line number68 index67 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">System.out.println(\u201cTitle<\/code><\/div>\n<div class=\"line number69 index68 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">for<\/code> <code class=\"c plain\">source: \u201d+mySource + \u201dand destination: \u201d+myDestination + \u201d = \u201d+actualTitle);<\/code><\/div>\n<div class=\"line number70 index69 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number71 index70 alt2\">&nbsp;<\/div>\n<div class=\"line number72 index71 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@AfterMethod<\/code><\/div>\n<div class=\"line number73 index72 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">tearDown() throws InterruptedException {<\/code><\/div>\n<div class=\"line number74 index73 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Thread.sleep(2000);<\/code><\/div>\n<div class=\"line number75 index74 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.quit();<\/code><\/div>\n<div class=\"line number76 index75 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number77 index76 alt2\">&nbsp;<\/div>\n<div class=\"line number78 index77 alt1\">&nbsp;<\/div>\n<div class=\"line number79 index78 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><strong>DataProvider Class:<\/strong><\/h3>\n<div>\n<div id=\"highlighter_400409\" class=\"syntaxhighlighter  c\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"c plain\">import java.lang.reflect.Method;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"c plain\">import org.testng.annotations.DataProvider;<\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">class<\/code> <code class=\"c plain\">TravelDataProvider {<\/code><\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@DataProvider(name = \u201ctravel - source - destination\u201d)<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">static<\/code> <code class=\"c plain\">Object[][] dataProviderMethod(Method m) {<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">if<\/code> <code class=\"c plain\">(m.getName().equalsIgnoreCase(\u201cdomesticTravel\u201d)) {<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">return<\/code> <code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">Object[][] {<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">{\u201c<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dGoa\u201d<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}, {\u201c<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dMumbai\u201d<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">};<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">} <\/code><code class=\"c keyword bold\">else<\/code> <code class=\"c plain\">{<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">return<\/code> <code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">Object[][] {<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">{\u201c<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dSydney\u201d<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}, {\u201c<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dBerlin\u201d<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">};<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number30 index29 alt1\">&nbsp;<\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"c plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><strong>Code Walkthrough and Output:<\/strong><\/h3>\n<p>In this example, we have used the Method parameter to extract the name of the test method. Once extracted, we can return conditional test data for each test method.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>Firstly, we have checked if our test method name is \u201cdomesticTravel\u201d, if yes, then source and destination data are being supplied according to domestic places, else the data is being supplied according to international places.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-1.png\"><img decoding=\"async\" width=\"1024\" height=\"459\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-1-1024x459.png\" alt=\"\" class=\"wp-image-109126\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-1-1024x459.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-1-300x135.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-1-768x345.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-1.png 1206w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<ol class=\"wp-block-list\">\n<li><strong>ITestContext: <\/strong>Many times we divide our test methods based on TestNG groups. In such a case, we might need different test data for different groups. TestNG DataProvider provides an advantage to cover such a scenario in just a single data provider method instead of creating a separate data provider method for supplying different test data to different groups. Let\u2019s understand this with an example.<\/li>\n<\/ol>\n<h3 class=\"wp-block-heading\"><strong>Java Test Class<\/strong><\/h3>\n<div>\n<div id=\"highlighter_385630\" class=\"syntaxhighlighter  c\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<div class=\"line number58 index57 alt1\">58<\/div>\n<div class=\"line number59 index58 alt2\">59<\/div>\n<div class=\"line number60 index59 alt1\">60<\/div>\n<div class=\"line number61 index60 alt2\">61<\/div>\n<div class=\"line number62 index61 alt1\">62<\/div>\n<div class=\"line number63 index62 alt2\">63<\/div>\n<div class=\"line number64 index63 alt1\">64<\/div>\n<div class=\"line number65 index64 alt2\">65<\/div>\n<div class=\"line number66 index65 alt1\">66<\/div>\n<div class=\"line number67 index66 alt2\">67<\/div>\n<div class=\"line number68 index67 alt1\">68<\/div>\n<div class=\"line number69 index68 alt2\">69<\/div>\n<div class=\"line number70 index69 alt1\">70<\/div>\n<div class=\"line number71 index70 alt2\">71<\/div>\n<div class=\"line number72 index71 alt1\">72<\/div>\n<div class=\"line number73 index72 alt2\">73<\/div>\n<div class=\"line number74 index73 alt1\">74<\/div>\n<div class=\"line number75 index74 alt2\">75<\/div>\n<div class=\"line number76 index75 alt1\">76<\/div>\n<div class=\"line number77 index76 alt2\">77<\/div>\n<div class=\"line number78 index77 alt1\">78<\/div>\n<div class=\"line number79 index78 alt2\">79<\/div>\n<div class=\"line number80 index79 alt1\">80<\/div>\n<div class=\"line number81 index80 alt2\">81<\/div>\n<div class=\"line number82 index81 alt1\">82<\/div>\n<div class=\"line number83 index82 alt2\">83<\/div>\n<div class=\"line number84 index83 alt1\">84<\/div>\n<div class=\"line number85 index84 alt2\">85<\/div>\n<div class=\"line number86 index85 alt1\">86<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"c plain\">import org.openqa.selenium.By;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"c plain\">import org.openqa.selenium.WebDriver;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"c plain\">import org.openqa.selenium.WebElement;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"c plain\">import org.openqa.selenium.chrome.ChromeDriver;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"c plain\">import org.openqa.selenium.chrome.ChromeOptions;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"c plain\">import org.testng.annotations.AfterMethod;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"c plain\">import org.testng.annotations.BeforeMethod;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"c plain\">import org.testng.annotations.Test;<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"c plain\">import io.github.bonigarcia.wdm.WebDriverManager;<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\">&nbsp;<\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">class<\/code> <code class=\"c plain\">SampleTestNgTest {<\/code><\/div>\n<div class=\"line number14 index13 alt1\">&nbsp;<\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">private<\/code> <code class=\"c plain\">WebDriver driver;<\/code><\/div>\n<div class=\"line number16 index15 alt1\">&nbsp;<\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@BeforeMethod(groups = {\u201c<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">domestic\u201d,<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dinternational\u201d<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">})<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">setup() {<\/code><\/div>\n<div class=\"line number22 index21 alt1\">&nbsp;<\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebDriverManager.chromedriver().setup();<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">ChromeOptions ops = <\/code><code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">ChromeOptions();<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">ops.addArguments(\u201c\u2013disable - notifications\u201d);<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver = <\/code><code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">ChromeDriver(ops);<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.get(\u201chttps: <\/code><code class=\"c comments\">\/\/www.easemytrip.com\/\u201d);<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.manage().window().maximize();<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number30 index29 alt1\">&nbsp;<\/div>\n<div class=\"line number31 index30 alt2\">&nbsp;<\/div>\n<div class=\"line number32 index31 alt1\">&nbsp;<\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@Test(groups = \u201cdomestic\u201d, dataProvider = \u201ctravel - source - destination\u201d, dataProviderClass = TravelDataProvider.<\/code><code class=\"c keyword bold\">class<\/code><code class=\"c plain\">)<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">domesticTravel(String mySource, String myDestination) throws InterruptedException {<\/code><\/div>\n<div class=\"line number35 index34 alt2\">&nbsp;<\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement source = driver.findElement(By.id(\u201cFromSector_show\u201d));<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.clear();<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.sendKeys(mySource);<\/code><\/div>\n<div class=\"line number39 index38 alt2\">&nbsp;<\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement destination = driver.findElement(By.id(\u201cEditbox13_show\u201d));<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.clear();<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.sendKeys(myDestination);<\/code><\/div>\n<div class=\"line number43 index42 alt2\">&nbsp;<\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Thread.sleep(2000);<\/code><\/div>\n<div class=\"line number45 index44 alt2\">&nbsp;<\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement searchButton = driver.findElement(By.cssSelector(\u201c#search &gt; input\u201d));<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">searchButton.click();<\/code><\/div>\n<div class=\"line number48 index47 alt1\">&nbsp;<\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">String actualTitle = driver.getTitle();<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">System.out.println(\u201cTitle<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">for<\/code> <code class=\"c plain\">source: \u201d+mySource + \u201dand destination: \u201d+myDestination + \u201d = \u201d+actualTitle);<\/code><\/div>\n<div class=\"line number52 index51 alt1\">&nbsp;<\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number54 index53 alt1\">&nbsp;<\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@Test(groups = \u201cinternational\u201d, dataProvider = \u201ctravel - source - destination\u201d, dataProviderClass = TravelDataProvider.<\/code><code class=\"c keyword bold\">class<\/code><code class=\"c plain\">)<\/code><\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">internationalTravel(String mySource, String myDestination) throws InterruptedException {<\/code><\/div>\n<div class=\"line number57 index56 alt2\">&nbsp;<\/div>\n<div class=\"line number58 index57 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement source = driver.findElement(By.id(\u201cFromSector_show\u201d));<\/code><\/div>\n<div class=\"line number59 index58 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.clear();<\/code><\/div>\n<div class=\"line number60 index59 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">source.sendKeys(mySource);<\/code><\/div>\n<div class=\"line number61 index60 alt2\">&nbsp;<\/div>\n<div class=\"line number62 index61 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement destination = driver.findElement(By.id(\u201cEditbox13_show\u201d));<\/code><\/div>\n<div class=\"line number63 index62 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.clear();<\/code><\/div>\n<div class=\"line number64 index63 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">destination.sendKeys(myDestination);<\/code><\/div>\n<div class=\"line number65 index64 alt2\">&nbsp;<\/div>\n<div class=\"line number66 index65 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Thread.sleep(2000);<\/code><\/div>\n<div class=\"line number67 index66 alt2\">&nbsp;<\/div>\n<div class=\"line number68 index67 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">WebElement searchButton = driver.findElement(By.cssSelector(\u201c#search &gt; input\u201d));<\/code><\/div>\n<div class=\"line number69 index68 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">searchButton.click();<\/code><\/div>\n<div class=\"line number70 index69 alt1\">&nbsp;<\/div>\n<div class=\"line number71 index70 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">String actualTitle = driver.getTitle();<\/code><\/div>\n<div class=\"line number72 index71 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">System.out.println(\u201cTitle<\/code><\/div>\n<div class=\"line number73 index72 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">for<\/code> <code class=\"c plain\">source: \u201d+mySource + \u201dand destination: \u201d+myDestination + \u201d = \u201d+actualTitle);<\/code><\/div>\n<div class=\"line number74 index73 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number75 index74 alt2\">&nbsp;<\/div>\n<div class=\"line number76 index75 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@AfterMethod(groups = {\u201c<\/code><\/div>\n<div class=\"line number77 index76 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">domestic\u201d,<\/code><\/div>\n<div class=\"line number78 index77 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dinternational\u201d<\/code><\/div>\n<div class=\"line number79 index78 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">})<\/code><\/div>\n<div class=\"line number80 index79 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">void<\/code> <code class=\"c plain\">tearDown() throws InterruptedException {<\/code><\/div>\n<div class=\"line number81 index80 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Thread.sleep(2000);<\/code><\/div>\n<div class=\"line number82 index81 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">driver.quit();<\/code><\/div>\n<div class=\"line number83 index82 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number84 index83 alt1\">&nbsp;<\/div>\n<div class=\"line number85 index84 alt2\">&nbsp;<\/div>\n<div class=\"line number86 index85 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><strong>DataProvider Class<\/strong><\/h3>\n<div>\n<div id=\"highlighter_603475\" class=\"syntaxhighlighter  c\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"c plain\">import org.testng.ITestContext;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"c plain\">import org.testng.annotations.DataProvider;<\/code><\/div>\n<div class=\"line number3 index2 alt2\">&nbsp;<\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">class<\/code> <code class=\"c plain\">TravelDataProvider {<\/code><\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">static<\/code> <code class=\"c plain\">Object[][] travelData = null;<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">@DataProvider(name = \u201ctravel - source - destination\u201d)<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">public<\/code> <code class=\"c keyword bold\">static<\/code> <code class=\"c plain\">Object[][] dataProviderMethod(ITestContext c) {<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">for<\/code> <code class=\"c plain\">(String group: c.getIncludedGroups()) {<\/code><\/div>\n<div class=\"line number11 index10 alt2\">&nbsp;<\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">if<\/code> <code class=\"c plain\">(group.equalsIgnoreCase(\u201cdomestic\u201d)) {<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">travelData = <\/code><code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">Object[][] {<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">{\u201c<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dGoa\u201d<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}, {\u201c<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dMumbai\u201d<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">};<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">break<\/code><code class=\"c plain\">;<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">} <\/code><code class=\"c keyword bold\">else<\/code> <code class=\"c keyword bold\">if<\/code> <code class=\"c plain\">(group.equalsIgnoreCase(\u201cinternational\u201d)) {<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">travelData = <\/code><code class=\"c keyword bold\">new<\/code> <code class=\"c plain\">Object[][] {<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">{\u201c<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dSydney\u201d<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}, {\u201c<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">Delhi\u201d,<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\u201dBerlin\u201d<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">};<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">break<\/code><code class=\"c plain\">;<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">return<\/code> <code class=\"c plain\">travelData;<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">}<\/code><\/div>\n<div class=\"line number38 index37 alt1\">&nbsp;<\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"c plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><strong>TestNG.xml<\/strong><\/h3>\n<div>\n<div id=\"highlighter_923282\" class=\"syntaxhighlighter  c\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<div class=\"line number54 index53 alt1\">54<\/div>\n<div class=\"line number55 index54 alt2\">55<\/div>\n<div class=\"line number56 index55 alt1\">56<\/div>\n<div class=\"line number57 index56 alt2\">57<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"c plain\">&lt;&lt; ? xml version = \u201d1.0\u2033 encoding = \u201dUTF - 8\u2033 ? &gt;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">!DOCTYPE suite SYSTEM\u201c http : <\/code><code class=\"c comments\">\/\/beust.com\/testng\/testng-1.0.dtd\u201d &gt;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">suite name = \u201dtravel - test - suite\u201d &gt;<\/code><\/div>\n<div class=\"line number6 index5 alt1\">&nbsp;<\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">test name = \u201dDomestic Travel Test\u201d &gt;<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">groups &gt;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">run &gt;<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">include name = \u201ddomestic\u201d \/ &gt;<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/run&gt; &lt;<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/groups&gt;<\/code><\/div>\n<div class=\"line number19 index18 alt2\">&nbsp;<\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">classes &gt;<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">class<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"c plain\">name = \u201dmain.java.src.SampleTestNgTest\u201d \/ &gt;<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/classes&gt;<\/code><\/div>\n<div class=\"line number27 index26 alt2\">&nbsp;<\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/test&gt;<\/code><\/div>\n<div class=\"line number30 index29 alt1\">&nbsp;<\/div>\n<div class=\"line number31 index30 alt2\">&nbsp;<\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">test name = \u201dInternational Travel Test\u201d &gt;<\/code><\/div>\n<div class=\"line number34 index33 alt1\">&nbsp;<\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">groups &gt;<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">run &gt;<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">include name = \u201dinternational\u201d \/ &gt;<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/run&gt; &lt;<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/groups&gt;<\/code><\/div>\n<div class=\"line number44 index43 alt1\">&nbsp;<\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">classes &gt;<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c keyword bold\">class<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"c plain\">name = \u201dmain.java.src.SampleTestNgTest\u201d \/ &gt;<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/classes&gt;<\/code><\/div>\n<div class=\"line number52 index51 alt1\">&nbsp;<\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/test&gt;<\/code><\/div>\n<div class=\"line number55 index54 alt2\">&nbsp;<\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">&lt;<\/code><\/div>\n<div class=\"line number57 index56 alt2\"><code class=\"c spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"c plain\">\/suite&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><strong>Code Walkthrough and Output:<\/strong><\/h3>\n<p>In the above code- java test class, we have divided our test methods based on the group so that each group gets executed with different test data using a single data provider method.<\/p>\n<p>In the TestNG data provider method, we have used the ITextContext interface to fetch the group name of each test method. Once fetched, the test method can be executed with multiple sets of data. One completely unique part that we have proposed with this method is to create a TestNG xml file. The purpose of creating an xml file is to command TestNG which test groups need to be executed and which test groups need to be ignored. In the testng.xml file, we have used a &lt;groups&gt; tag to include groups that need to be executed.<\/p>\n<p><strong>Note:<\/strong> Running group based tests directly from the java test class will throw an error. The java test class will first call a dataprovider in TestNG which currently doesn\u2019t have any group information. Hence, it is important to execute group based tests from an xml file where we can define our group\u2019s tag to provide test group information.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-2.png\"><img decoding=\"async\" width=\"1024\" height=\"367\" src=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-2-1024x367.png\" alt=\"\" class=\"wp-image-109127\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-2-1024x367.png 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-2-300x107.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-2-768x275.png 768w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2021\/03\/pasted-image-0-2.png 1206w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n<p>The use of parameterization in TestNG gives you the power to perform data-driven testing more efficiently. Defining the parameters beforehand will allow you to use different test inputs of a single test suite instead of writing multiple test automation scripts. Which in turn makes it easier to maintain the test automation code. Here is another helpful resource below that helps with understanding various <a href=\"https:\/\/www.pcloudy.com\/rapid-automation-testing\/\" target=\"_blank\" rel=\"noreferrer noopener\">rapid test automation<\/a> techniques.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on Java Code Geeks with permission by Balamurugan, partner at our <a href=\"\/\/www.javacodegeeks.com\/join-us\/jcg\/\" target=\"_blank\" rel=\"noopener\">JCG program<\/a>. See the original article here: <a href=\"https:\/\/www.pcloudy.com\/blogs\/parameterization-with-dataprovider-in-testng\/\" target=\"_blank\" rel=\"noopener\">Parameterization with DataProvider in TestNG<\/a><\/p>\n<p>Opinions expressed by Java Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Parameterization in TestNG is also known as Parametric Testing which allows testing an application against multiple test data and configurations. Though we have to consider the fact that exhaustive testing is impossible, however, it is necessary to check the behavior of our application against different sets of data that an end-user can pass. Time and &hellip;<\/p>\n","protected":false},"author":98148,"featured_media":112,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[287,273,342],"class_list":["post-109110","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-selenium","tag-testing","tag-testng"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Parameterization with DataProvider in TestNG - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Interested to learn about DataProvider? Check our article explaining about Parameterization with DataProvider in TestNG.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Parameterization with DataProvider in TestNG - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about DataProvider? Check our article explaining about Parameterization with DataProvider in TestNG.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-09T08:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Balamurugan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pcloudy_ssts\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Balamurugan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html\"},\"author\":{\"name\":\"Balamurugan\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/aaf34b6d7f52e2c71932d8d6ff4dadc0\"},\"headline\":\"Parameterization with DataProvider in TestNG\",\"datePublished\":\"2021-03-09T08:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html\"},\"wordCount\":1398,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"keywords\":[\"Selenium\",\"Testing\",\"TestNG\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html\",\"name\":\"Parameterization with DataProvider in TestNG - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"datePublished\":\"2021-03-09T08:00:00+00:00\",\"description\":\"Interested to learn about DataProvider? Check our article explaining about Parameterization with DataProvider in TestNG.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"java-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2021\\\/03\\\/parameterization-with-dataprovider-in-testng.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Parameterization with DataProvider in TestNG\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/aaf34b6d7f52e2c71932d8d6ff4dadc0\",\"name\":\"Balamurugan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/balamurugan-96x96.jpg\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/balamurugan-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/balamurugan-96x96.jpg\",\"caption\":\"Balamurugan\"},\"description\":\"Balamurugan works at pCloudy as a Brand Marketing. He has 8+ years of experience in SEO, SEM, Social media and Email Marketing. He likes to read current affairs, technology blogs and enjoys Carnatic music.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/bala-murugan-ssts\\\/\",\"https:\\\/\\\/x.com\\\/pcloudy_ssts\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/balamurugan\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Parameterization with DataProvider in TestNG - Java Code Geeks","description":"Interested to learn about DataProvider? Check our article explaining about Parameterization with DataProvider in TestNG.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html","og_locale":"en_US","og_type":"article","og_title":"Parameterization with DataProvider in TestNG - Java Code Geeks","og_description":"Interested to learn about DataProvider? Check our article explaining about Parameterization with DataProvider in TestNG.","og_url":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2021-03-09T08:00:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","type":"image\/jpeg"}],"author":"Balamurugan","twitter_card":"summary_large_image","twitter_creator":"@pcloudy_ssts","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Balamurugan","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html"},"author":{"name":"Balamurugan","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/aaf34b6d7f52e2c71932d8d6ff4dadc0"},"headline":"Parameterization with DataProvider in TestNG","datePublished":"2021-03-09T08:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html"},"wordCount":1398,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","keywords":["Selenium","Testing","TestNG"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html","url":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html","name":"Parameterization with DataProvider in TestNG - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","datePublished":"2021-03-09T08:00:00+00:00","description":"Interested to learn about DataProvider? Check our article explaining about Parameterization with DataProvider in TestNG.","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","width":150,"height":150,"caption":"java-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2021\/03\/parameterization-with-dataprovider-in-testng.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Parameterization with DataProvider in TestNG"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/aaf34b6d7f52e2c71932d8d6ff4dadc0","name":"Balamurugan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/12\/balamurugan-96x96.jpg","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/12\/balamurugan-96x96.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/12\/balamurugan-96x96.jpg","caption":"Balamurugan"},"description":"Balamurugan works at pCloudy as a Brand Marketing. He has 8+ years of experience in SEO, SEM, Social media and Email Marketing. He likes to read current affairs, technology blogs and enjoys Carnatic music.","sameAs":["https:\/\/www.linkedin.com\/in\/bala-murugan-ssts\/","https:\/\/x.com\/pcloudy_ssts"],"url":"https:\/\/www.javacodegeeks.com\/author\/balamurugan"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/109110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/98148"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=109110"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/109110\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=109110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=109110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=109110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}