{"id":5083,"date":"2018-08-23T10:25:33","date_gmt":"2018-08-23T14:25:33","guid":{"rendered":"https:\/\/www.redline13.com\/blog\/?p=5083"},"modified":"2018-08-23T10:25:33","modified_gmt":"2018-08-23T14:25:33","slug":"data-driven-testing-with-excel-files-in-groovy","status":"publish","type":"post","link":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/","title":{"rendered":"Data Driven Testing with Excel Files in Groovy"},"content":{"rendered":"<p>In our previous <a href=\"https:\/\/www.redline13.com\/blog\/2018\/07\/jmeter-pro-tip\/\">blog post<\/a>, we wrote about Data Driven Testing (DDT) using CSV files in JMeter. Excel files are another popular approach. This blog post will show step by step how to do Data Driven Testing with Excel files.<\/p>\n<p>Contrary to CSV files, we will import some external libraries in JMeter and then write a few lines of code to perform data driven tests.<\/p>\n<p>The other important aim of this blog post is that instead of Beanshell Sampler, we will use the Groovy code and compiler in the JSR223 Sampler to do our Data Driven Testing with Excel files.<\/p>\n<h3><strong>Introduction<\/strong><\/h3>\n<p>In this blog post, we will use Groovy code for making Data Driven Testing on JMeter because it gives us more flexibility in coding and provides better execution performance. The advantages of using the Groovy language on JMeter are:<\/p>\n<ul>\n<li>We can easily execute any remote OS commands. We already used this in a past <a href=\"https:\/\/www.redline13.com\/blog\/2018\/07\/jmeter-pro-tip\/\">blog post<\/a>.<\/li>\n<li>Groovy scripts have amazing performance compared to the Beanshell Sampler.<\/li>\n<li>Almost all valid Java code is compatible with Groovy.<\/li>\n<li>You will write less line of code than the same code in Java.<\/li>\n<li>More readable syntax..<\/li>\n<li>In any JMeter Sampler, you have easy access to the JMeter function <code>__groovy()<\/code>.<\/li>\n<li>Debugging is easy with Groovy. In many cases, you need to see the value of variables in the scripts. We can easily use the logging functionality of Groovy by just writing <code>log.info(variable)<\/code>.<\/li>\n<\/ul>\n<p>In our example we&#8217;ll be using same IOT (Internet of Things) application <a href=\"https:\/\/demo.thingsboard.io\/\">https:\/\/demo.thingsboard.io\/<\/a> and adding new devices from our list as in our previous post. We will fill the form device information by getting data from our Excel data file.<\/p>\n<h3>Step by Step &#8211;\u00a0Data Driven Testing with Excel Files in Groovy<\/h3>\n<p>First, we need to add the following libraries under the JMeter Lib folder. I am using JMeter 4.0 version. If JMeter is running, first close JMeter. Add these libraries:<\/p>\n<p><strong>\u00b7 commons-collections4-4.1.jar<\/strong><\/p>\n<p><strong>\u00b7 xmlbeans-2.3.0.jar<\/strong><\/p>\n<p><strong>\u00b7 Apache POI 3.17<\/strong><\/p>\n<p><strong>\u00b7 Apache POI-OOXML 3.17<\/strong><\/p>\n<p><strong>\u00b7 Apache Commons IO 2.6<\/strong><\/p>\n<p><strong>\u00b7 OOXML Schemas 1.3<\/strong><\/p>\n<h3>HTTP Test Script Recorder<\/h3>\n<p>After adding libraries, we record our IOT application device adding processes using JMeter&#8217;s &#8220;HTTP Test Script Recorder&#8221;. You can exclude the types of content you do not want to request (e.g. *.jpg, *.png, *.js, etc.) by selecting the &#8220;Add Suggested Excludes&#8221; option in JMeter Test Script Recorder.<\/p>\n<p>After the recording is completed, our script looks like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5084\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-18.png\" alt=\"Script after recording\" width=\"510\" height=\"322\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-18.png 510w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-18-300x189.png 300w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/p>\n<p>I have renamed it to something meaningful, moved it from Recording Controller to Thread Group section and deleted the Recording Controller.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5085\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-19.png\" alt=\"Moved to Thread Group\" width=\"517\" height=\"209\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-19.png 517w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-19-300x121.png 300w\" sizes=\"auto, (max-width: 517px) 100vw, 517px\" \/><\/p>\n<p>The following request contains \u201cname\u201d and \u201dtype\u201d descriptions. We implement Data Driven Testing for name and type variables.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5086\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-20.png\" alt=\"HTTP Request\" width=\"1279\" height=\"368\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-20.png 1279w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-20-300x86.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-20-1024x295.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-20-768x221.png 768w\" sizes=\"auto, (max-width: 1279px) 100vw, 1279px\" \/><\/p>\n<p>Each line of the Excel file has 2 columns, one for device name and the other for device type. You can add more data types as needed. In this example, we are using two different data variables.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5087\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-21.png\" alt=\"Each line of the Excel file has 2 columns, one for device name and the other for device type\" width=\"756\" height=\"844\" \/><\/p>\n<p>We are adding the <strong>JSR223 Sampler<\/strong> to create a Workbook object based on the Excel file.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5088\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-22.png\" alt=\"JSR223 Sampler\" width=\"1184\" height=\"660\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-22.png 1184w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-22-300x167.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-22-1024x571.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-22-768x428.png 768w\" sizes=\"auto, (max-width: 1184px) 100vw, 1184px\" \/><\/p>\n<p>Here\u2019s an explanation of what the code above does.<\/p>\n<p>We obtain input bytes from our Excel file and keep it in the <strong>fs <\/strong>variable<strong>. <\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">def\u00a0fs\u00a0=\u00a0new\u00a0FileInputStream\u00a0(\"C:\\\\Users\\\\Mahir\\\\Documents\\\\apache-jmeter-3.3\\\\bin\\\\datas.xlsx\");<\/pre>\n<p>Then we get the workbook instance for XLSX file and named it as a \u201cwb\u201d.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Workbook wb = WorkbookFactory.create(fs);\n\n<\/pre>\n<p>And finally we select the first sheet of our xlsx file.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">def ws = wb.getSheet(\"Sheet1\")<\/pre>\n<p>To perform data driven testing it is important to determine how many rows our Excel file has. The first line of code gets the count and the second line assigns the total count variable as a global JMeter variable \u201c<strong>count<\/strong>\u201d. We will use this count variable to set the looping size to the number of rows in our Excel file.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">def count = ws.getPhysicalNumberOfRows()\n\nvars.put(\"count\",count.toString());<\/pre>\n<p>Below is the most important command that we create to store the object as \u201c<strong>ws<\/strong>\u201d to get all of the rows from the Excel file at a current sheet.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">vars.putObject(\"ws\",ws);<\/pre>\n<h3>User Defined Variables<\/h3>\n<p>Now we add the <strong>User Defined Variables<\/strong> and create a variable named &#8220;<strong>counter_value<\/strong>&#8221; with the starting value of \u201c0\u201d. The value of this variable is initialized and declared as the counter. We will start this variable at 0 and loop until the number of rows in the Excel file.<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5089\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-23.png\" alt=\"User Defined Variables\" width=\"730\" height=\"253\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-23.png 730w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-23-300x104.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/strong><\/p>\n<p>We next add the <strong>Counter Config Element<\/strong> to handle loop operations for our next process.<\/p>\n<p><strong>Maximum_value<\/strong>: In this section, we determine the total row count of our Excel file.<\/p>\n<p><strong>Reference Name<\/strong>: We name the Counter \u201ccounter_value\u201d. It holds the current counter value.<\/p>\n<p><strong>Increment<\/strong>: The value that is added to the value of the variable &#8220;<strong>counter_value<\/strong>&#8221; before sending the next request. Set it to \u201c1\u201d.<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5090\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-24.png\" alt=\"Counter Value\" width=\"811\" height=\"323\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-24.png 811w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-24-300x119.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-24-768x306.png 768w\" sizes=\"auto, (max-width: 811px) 100vw, 811px\" \/><\/strong><\/p>\n<h3>While Controller<\/h3>\n<p>We add the <strong>While Controller<\/strong> to send requests for each row of data in our Excel file. Then, we will determine the <strong>Condition<\/strong> to stop the While Controller.<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5091\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-25.png\" alt=\"While Controller\" width=\"992\" height=\"329\" \/><\/strong><\/p>\n<p>In the following step, we pull data from the proper row and cell and save these values in variables \u201cname\u201d and \u201ctype\u201d.<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5092\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-26.png\" alt=\"We pull the data from the object of rows of the cell values\" width=\"940\" height=\"502\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-26.png 940w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-26-300x160.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-26-768x410.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">def name=vars.getObject(\"ws\").getRow(0).getCell(0);\n\nvars.put(\"name\",name.toString());<\/pre>\n<p><code>getCell(0)<\/code> points to first column the \u201cname\u201d<\/p>\n<p><code>getCell(1)<\/code> points to second column as the \u201ctype\u201d<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">vars.put(\"name\",name.toString());<\/pre>\n<p>We saved the \u201cname\u201d and \u201ctype\u201d variables as global JMeter variables and pass them to the our Http Request.<\/p>\n<h3>Response Assertion<\/h3>\n<p>In the previous post, we mentioned that the essential part of Data Driven Testing is to use Response Assertion to determine whether the specific data passes or fails. So we will add the Response Assertion to our HTTP Request and configure it.<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5093\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-27.png\" alt=\"Response Assertion\" width=\"1287\" height=\"460\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-27.png 1287w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-27-300x107.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-27-1024x366.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-27-768x274.png 768w\" sizes=\"auto, (max-width: 1287px) 100vw, 1287px\" \/><\/strong><\/p>\n<p>Now we need to configure and change the name and type fields to a dynamic value. The JMeter variable syntax looks like this <code>${variablename}<\/code>.<\/p>\n<p>We then move our Counter Config Element and Device Add HTTP Request into the While Controller. Before running the script, the JMeter project file structure looks like this:<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5094\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-28.png\" alt=\"JMeter project file structure\" width=\"1130\" height=\"441\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-28.png 1130w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-28-300x117.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-28-1024x400.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-28-768x300.png 768w\" sizes=\"auto, (max-width: 1130px) 100vw, 1130px\" \/><\/strong><\/p>\n<p>In order to see the Response Assertion\u2019s work in failures situations, I intentionally added the same device names to our Excel file.<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5095\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-29.png\" alt=\"Response Assertion\u2019s work in failures situations\" width=\"722\" height=\"773\" \/><\/strong><\/p>\n<h3>Running our Script<\/h3>\n<p>Before starting the test, our application has no devices.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5096\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-30.png\" alt=\"Before beginning our application has no devices.\" width=\"1910\" height=\"896\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-30.png 1910w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-30-300x141.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-30-1024x480.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-30-768x360.png 768w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-30-1536x721.png 1536w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-30-1568x736.png 1568w\" sizes=\"auto, (max-width: 1910px) 100vw, 1910px\" \/><\/p>\n<p>When we run the script, some requests failed because they were the not verified by the Response Assertion:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5097\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-31.png\" alt=\"When we run the script, some requests fail\" width=\"394\" height=\"289\" \/> <img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"65\" class=\"wp-image-5098\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-32.png\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-32.png 720w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-32-300x27.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5099\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-33.png\" alt=\"Assertion Failure Message\" width=\"1204\" height=\"220\" \/><\/p>\n<p>After completing the scripts, we can see that devices are added into the system.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5100\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-34.png\" alt=\"Devices are added\" width=\"1863\" height=\"860\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-34.png 1863w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-34-300x138.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-34-1024x473.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-34-768x355.png 768w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-34-1536x709.png 1536w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/word-image-34-1568x724.png 1568w\" sizes=\"auto, (max-width: 1863px) 100vw, 1863px\" \/><\/p>\n<p>After checking that our script worked well, we can run this script, as you would with any JMeter script, on AWS (Amazon Web Services), to performing load test using RedLine13. Apache JMeter is one of the most popular tools for load testing and scaling out our JMeter test plan on the cloud in RedLine13 is easy. This <a href=\"https:\/\/www.redline13.com\/blog\/2017\/02\/running-jmeter-load-test\/\">guide<\/a> and video walks you through running your first JMeter test on <a href=\"http:\/\/www.redline13.com\">RedLine13<\/a>.<\/p>\n<p>That\u2019s it. We did Data Driven Testing with Excel Files in Groovy.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our previous blog post, we wrote about Data Driven Testing (DDT) using CSV files in JMeter. Excel files are another popular approach. This blog post will show step by step how to do Data Driven Testing with Excel files. Contrary to CSV files, we will import some external libraries in JMeter and then write a few lines of code to perform data driven tests. The other important aim of this blog post is that instead<a class=\"more-link\" href=\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/\">Read More &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":5108,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,28,1],"tags":[],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-user","4":"post-5083","6":"format-standard","7":"has-post-thumbnail","8":"category-blog","9":"category-data-driven-testing","10":"category-uncategorized"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Data Driven Testing with Excel Files in Groovy - RedLine13<\/title>\n<meta name=\"description\" content=\"Data Driven Testing (DDT) with Excel files and Groovy which gives us more flexibility in coding and provides better performance. Step by step guide.\" \/>\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.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data Driven Testing with Excel Files in Groovy - RedLine13\" \/>\n<meta property=\"og:description\" content=\"Data Driven Testing (DDT) with Excel files and Groovy which gives us more flexibility in coding and provides better performance. Step by step guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/\" \/>\n<meta property=\"og:site_name\" content=\"RedLine13\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-23T14:25:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/Test.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"225\" \/>\n\t<meta property=\"og:image:height\" content=\"225\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"RedLine13\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"RedLine13\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/\"},\"author\":{\"name\":\"RedLine13\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/4acbcdcb8a9c72ec5a274e69c0ebea28\"},\"headline\":\"Data Driven Testing with Excel Files in Groovy\",\"datePublished\":\"2018-08-23T14:25:33+00:00\",\"dateModified\":\"2018-08-23T14:25:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/\"},\"wordCount\":1079,\"publisher\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\"},\"articleSection\":[\"Blog\",\"Data Driven Testing\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/\",\"url\":\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/\",\"name\":\"Data Driven Testing with Excel Files in Groovy - RedLine13\",\"isPartOf\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#website\"},\"datePublished\":\"2018-08-23T14:25:33+00:00\",\"dateModified\":\"2018-08-23T14:25:33+00:00\",\"description\":\"Data Driven Testing (DDT) with Excel files and Groovy which gives us more flexibility in coding and provides better performance. Step by step guide.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.redline13.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Driven Testing with Excel Files in Groovy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#website\",\"url\":\"https:\/\/www.redline13.com\/blog\/\",\"name\":\"RedLine13\",\"description\":\"(Almost) Free Load Testing in the Cloud\",\"publisher\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.redline13.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\",\"name\":\"RedLine13\",\"url\":\"https:\/\/www.redline13.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg\",\"contentUrl\":\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg\",\"width\":300,\"height\":68,\"caption\":\"RedLine13\"},\"image\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/4acbcdcb8a9c72ec5a274e69c0ebea28\",\"name\":\"RedLine13\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514?s=96&d=mm&r=g\",\"caption\":\"RedLine13\"},\"sameAs\":[\"http:\/\/127.0.0.1\"],\"url\":\"https:\/\/www.redline13.com\/blog\/author\/user\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Data Driven Testing with Excel Files in Groovy - RedLine13","description":"Data Driven Testing (DDT) with Excel files and Groovy which gives us more flexibility in coding and provides better performance. Step by step guide.","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.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/","og_locale":"en_US","og_type":"article","og_title":"Data Driven Testing with Excel Files in Groovy - RedLine13","og_description":"Data Driven Testing (DDT) with Excel files and Groovy which gives us more flexibility in coding and provides better performance. Step by step guide.","og_url":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/","og_site_name":"RedLine13","article_published_time":"2018-08-23T14:25:33+00:00","og_image":[{"width":225,"height":225,"url":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2018\/08\/Test.jpeg","type":"image\/jpeg"}],"author":"RedLine13","twitter_card":"summary_large_image","twitter_misc":{"Written by":"RedLine13","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/#article","isPartOf":{"@id":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/"},"author":{"name":"RedLine13","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/4acbcdcb8a9c72ec5a274e69c0ebea28"},"headline":"Data Driven Testing with Excel Files in Groovy","datePublished":"2018-08-23T14:25:33+00:00","dateModified":"2018-08-23T14:25:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/"},"wordCount":1079,"publisher":{"@id":"https:\/\/www.redline13.com\/blog\/#organization"},"articleSection":["Blog","Data Driven Testing"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/","url":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/","name":"Data Driven Testing with Excel Files in Groovy - RedLine13","isPartOf":{"@id":"https:\/\/www.redline13.com\/blog\/#website"},"datePublished":"2018-08-23T14:25:33+00:00","dateModified":"2018-08-23T14:25:33+00:00","description":"Data Driven Testing (DDT) with Excel files and Groovy which gives us more flexibility in coding and provides better performance. Step by step guide.","breadcrumb":{"@id":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.redline13.com\/blog\/2018\/08\/data-driven-testing-with-excel-files-in-groovy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.redline13.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Data Driven Testing with Excel Files in Groovy"}]},{"@type":"WebSite","@id":"https:\/\/www.redline13.com\/blog\/#website","url":"https:\/\/www.redline13.com\/blog\/","name":"RedLine13","description":"(Almost) Free Load Testing in the Cloud","publisher":{"@id":"https:\/\/www.redline13.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.redline13.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.redline13.com\/blog\/#organization","name":"RedLine13","url":"https:\/\/www.redline13.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg","contentUrl":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg","width":300,"height":68,"caption":"RedLine13"},"image":{"@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/4acbcdcb8a9c72ec5a274e69c0ebea28","name":"RedLine13","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514?s=96&d=mm&r=g","caption":"RedLine13"},"sameAs":["http:\/\/127.0.0.1"],"url":"https:\/\/www.redline13.com\/blog\/author\/user\/"}]}},"_links":{"self":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/5083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/comments?post=5083"}],"version-history":[{"count":0,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/5083\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/media\/5108"}],"wp:attachment":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/media?parent=5083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/categories?post=5083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/tags?post=5083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}