# Helping a LoadRunner User speak Gatling --- Parameterization

**URL:** https://community.gatling.io/t/helping-a-loadrunner-user-speak-gatling-parameterization/5508
**Category:** Gatling (Open-Source)
**Created:** [February 21, 2020, 5:59pm UTC](https://community.gatling.io/t/helping-a-loadrunner-user-speak-gatling-parameterization/5508 "2020-02-21T17:59:07Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Randy\_Stevenson](https://avatars.discourse-cdn.com/v4/letter/r/49beb7/32.png) [@Randy\_Stevenson](https://community.gatling.io/u/Randy_Stevenson)
#### Post date: [February 21, 2020, 5:59pm UTC](https://community.gatling.io/t/helping-a-loadrunner-user-speak-gatling-parameterization/5508/1 "2020-02-21T17:59:07Z")

</div>

**Confession** : I am not only a Gatling noob but apparently so LoadRunner-corrupted that I have trouble even getting my brain around Gatling.

So, trying to stay open minded, off we go.

I have built my very first Gatling script of an HTTPS Okta-protected (SSO) web site. The user story is simply to access the target URL and login.

I built the script by using Chrome to build a HAR file, and imported it into the Gatling recorder.

It seems to work, though I actually have some trouble telling if it really does, which is why I am moving on to parameterization.

I need to read Employee id’s from a CSV data file and pass an id randomly into the parts of the SCALA script where it is needed.

This is a cinch in LoadRunner, but apparently a little more complex (at least for me) in Gatling.

Here is what I have:

I have a 200 row CSV file stored in **C:\Gatling\user-file\resources**

> Employee,Password
> 
> X006101,ugly898p
> 
> X009745,ugly898p
> 
> X016260,ugly898p

In the SCALA script I have added a feeder statement to pull the CSV file into memory (assuming I understand how that works):

> class DealerPath extends Simulation {
> 
> **val feeder = csv(“R4-Dealers.csv”).eager.random**
> 
> val httpProtocol = http
> 
> .baseUrl(“[https://col.eum-appdynamics.com](https://col.eum-appdynamics.com)”)
> 
> .inferHtmlResources()

In the script location where the manually entered Employee ID is found I replaced the value with ${Employee}:

> .get(uri20 + “/b/ss/deerejddealerpathdev/1/JS-1.6.4-D7QN/s22257548961079?AQB=1&ndh=1&pf=1&t=20%2F1%2F2020%2013%3A49%3A27%204%20360&D=D%3D&mid=77887682783998080434584462396683909568&aamlh=7&ce=UTF-8&pageName=r4%3Amydealerpath%20home&g=https%3A%2F%[2Fdealerpathcert85.deere.com](http://2Fdealerpathcert85.deere.com)%2Fwps%2Fmyportal%2Fdpath%2FHome%2FR4Home%2FDealerPath%2F%21ut%2Fp%2Fz1%2F04\_Sj9CPykssy0xPLMnMz0vMAfIjo8ziffxdzDwcTQy9LUIszQwcDT0CDQLMzQ0Mggz0w8EKDFCAo4FTkJGTsYGBu7-RfhTp-pFNIk4\_HgVR-I0P14\_Ca0WIAVQBPi8SsqQgNzQ0wiDTEwBjrDhu%2Fdz%2Fd5%2FL2dBISEvZ0FBIS&ch=r4&[server=dealerpathcert85.deere.com](http://server=dealerpathcert85.deere.com)&events=event1&aamb=RKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y&c1=D%3DpageName&v1=D%3DpageName&c2=D%3Dv2&v2=https%3A%2F%[2Fdealerpathcert85.deere.com](http://2Fdealerpathcert85.deere.com)%2Fwps%2Fmyportal%2Fdpath%2FHome%2FR4Home%2FDealerPath%2F%21ut%2Fp%2Fz1%2F04\_Sj9CPykssy0xPLMnMz0vMAfIjo8ziffxdzDwcTQy9LUIszQwcDT0CDQLMzQ0Mggz0w8EKDFCAo4FTkJGTsYGBu7-RfhTp-pFNIk4\_HgVR-I0P14\_Ca0WIAVQBPi8SsqQgNzQ0wiDTEwBjrDhu%2Fdz%2Fd5%2FL2dBISEvZ0FBIS9&c3=D%3Dv3&c5=D%3Dv5&v5=r4&c6=r4%3Amydealerpath%20home&v6=r4%3Amydealerpath%20home&c10=D%3Dv10&v10=2%3A30PM&c11=D%3Dv11&v11=Thursday&c12=D%3Dv12&v12=Weekday&c13=D%3Dv13&v13=New&c15=VisitorAPI%20Present&c17=D%3Dv17&v17=1&c19=D%3Dv19&v19=Employee&c20=D%3Dv20&v20= **${Employee}** &c21=D%3Dv21&v21=en\_US&s=1680x1050&c=24&j=1.6&v=N&k=Y&bw=1680&bh=528&-g=9&AQE=1”)

Immediately before the above .get step in the script, I placed a .feed(feeder) call:

> .get(uri13 + “/wps/contenthandler/dpath/!ut/p/digest!CfC\_sxRf5skScA7XMP9B0g/dav/fs-type1/themes/dealerpaththeme/css/default/lib/images/ui-bg\_flat\_75\_ffffff\_40x100.png”),
> 
> http(“request\_109”)
> 
> **.feed(feeder)**
> 
> .get(uri20 + “/b/ss/deerejddealerpathdev/1/JS-1.6.4-D7QN/s29046673639337?AQB=1&ndh=1&pf=1&t=20%2F1%2F2020%2013%3A49%3A40%204%20360&D=D%3D&mid=77887682783998080434584462396683909568&aamlh=7&ce=UTF-8&pageName=r4%3Am%26a%3Aeleader%20%28the%20leader%29&g=https%3A%2F%[2Fdealerpathcert85.deere.com](http://2Fdealerpathcert85.deere.com)%2Fwps%2Fmyportal%2Fdpath%2FHome%2FR4Home%2FIndPage%2F%21ut%2Fp%2Fz1%2F1VNbb4IwFP4tezDZsrAeqAg-4jCyjelkIsJLU6AoG1blInO\_fig-uGQBX9eX9qTf7fSCPLRAHqf7eEnzeMNpUtWu1yPmRO8ZWld8UWf9HmiiMYU3RQEYS8g5AeDX0GBgSQMMMJpIyGvgW\_An\_1LpOn4DwGvOP0fuALn-fUYXyxax&ch=r4&[server=dealerpathcert85.deere.com](http://server=dealerpathcert85.deere.com)&events=event1&aamb=RKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y&c1=D%3DpageName&v1=D%3DpageName&c2=D%3Dv2&v2=https%3A%2F%[2Fdealerpathcert85.deere.com](http://2Fdealerpathcert85.deere.com)%2Fwps%2Fmyportal%2Fdpath%2FHome%2FR4Home%2FIndPage%2F%21ut%2Fp%2Fz1%2F1VNbb4IwFP4tezDZsrAeqAg-4jCyjelkIsJLU6AoG1blInO\_fig-uGQBX9eX9qTf7fSCPLRAHqf7eEnzeMNpUtWu1yPmRO8ZWld8UWf9HmiiMYU3RQEYS8g5AeDX0GBgSQMMMJpIyGvgW\_An\_1LpOn4DwGvOP0fuALn-fUYXyxaxc&c3=D%3Dv3&v3=r4%3Amydealerpath%20home&c5=D%3Dv5&v5=r4&c6=r4%3Am%26a&v6=r4%3Am%26a&c7=r4%3Am%26a%3Aeleader%20%28the%20leader%29&v7=r4%3Am%26a%3Aeleader%20%28the%20leader%29&c10=D%3Dv10&v10=2%3A30PM&c11=D%3Dv11&v11=Thursday&c12=D%3Dv12&v12=Weekday&c13=D%3Dv13&v13=New&c15=VisitorAPI%20Present&c17=D%3Dv17&v17=2&c19=D%3Dv19&v19=Employee&c20=D%3Dv20&v20= **${Employee** }&c21=D%3Dv21&v21=en\_US&s=1680x1050&c=24&j=1.6&v=N&k=Y&bw=1680&bh=528&-g=c&AQE=1”)

When I try to run the script, it blows up during the compile.

> 11:55:53.320 [ERROR] i.g.c.ZincCompiler$ - C:\Gatling\user-files\simulations\DealerPath.scala:612:5: value feed is not a member of io.gatling.http.request.builder.Http
> 
> possible cause: maybe a semicolon is missing before `value feed’?
> 
> .feed(feeder)
> 
> ^
> 
> 11:55:53.367 [ERROR] i.g.c.ZincCompiler$ - one error found
> 
> 11:55:53.382 [ERROR] i.g.c.ZincCompiler$ - Compilation crashed
> 
> sbt.internal.inc.CompileFailed: null

I have read and read about feeders, and I have tried to read quite a few past posts, but I am so green to Scala/Akka and even Java, that it is Greek to me.

I also know that once I figure out this part of the script parameterization I will need to figure out how to paramaterize the SAML activity. That, itself, will for me be an even bigger step up.

All I need to do is login 8000 users in an hour to a web portal. It should not be rocket science.

I am trying to “shift left” performance testing by having Product/Delivery Teams do their own testing instead of relying on a central, shared service testing group. However, I am finding it hard to “teach a man to fish”, since I am apparently so specialized in LoadRunner, that I need to totally revamp my brain.

Thanks,  
Randy

---

<div class="post-metadata">

### Author: ![Prithav\_Kumar](https://avatars.discourse-cdn.com/v4/letter/p/e99b99/32.png) [@Prithav\_Kumar](https://community.gatling.io/u/Prithav_Kumar)
#### Post date: [February 21, 2020, 7:46pm UTC](https://community.gatling.io/t/helping-a-loadrunner-user-speak-gatling-parameterization/5508/2 "2020-02-21T19:46:20Z")

</div>

Hi Randy,

Try to keep **.feed(feeder)** out of the **.exec()**. Let me know if that works.

Thanks,  
Prithav

---

<div class="post-metadata">

### Author: ![Randy\_Stevenson](https://avatars.discourse-cdn.com/v4/letter/r/49beb7/32.png) [@Randy\_Stevenson](https://community.gatling.io/u/Randy_Stevenson)
#### Post date: [February 21, 2020, 11:51pm UTC](https://community.gatling.io/t/helping-a-loadrunner-user-speak-gatling-parameterization/5508/3 "2020-02-21T23:51:44Z")

</div>

Thank you for the response, Prithav.

Though I still do not quite understand the concept of a “chain”, I moved the .feeder call up higher, and it seems to now work. Or at least I am not getting a total failure.

How can I tell if it really is reading the file and using the parameters? I looked at the application using AppDynamics, and there was no activity. This tells me that I only have the illusion of a working script. Should I post this question as a separate thread?

By the way, so far you Gatling guys make the Mercury/HP/MicroFocus Support group look silly. I always suspected that using an Open Source tool would easily out pace the expensive LoadRunner tool.

Thanks,  
Randy

---

<div class="post-metadata">

### Author: ![slandelle](https://dub1.discourse-cdn.com/flex013/user_avatar/community.gatling.io/slandelle/32/4_2.png) [@slandelle](https://community.gatling.io/u/slandelle)
#### Post date: [February 22, 2020, 9:21am UTC](https://community.gatling.io/t/helping-a-loadrunner-user-speak-gatling-parameterization/5508/4 "2020-02-22T09:21:07Z")

</div>

Please have a look at the logback.xml file and uncomment lines to debug your tests and check if you’re properly sending the payloads.  
Gatling verifies that response status is 20X or 304 so except if your application is poorly implemented and responds with a successful HTTP status while the request failed, your request was likely to be successful.
