Hi Stephane ,
Below is my Simulation class file , Let me know if any further info needed,
import io.gatling.core.session.SessionAttribute
import io.gatling.core.structure.PopulationBuilder
import io.gatling.http.Predef._
import io.gatling.core.Predef._
import scala.collection.mutable.ListBuffer
import scala.concurrent.duration._
class paLoadScenario extends Simulation
{
var allTypical = “API_pa_1:90,API_pa_2:10”
var BASE_URL = System.getProperty(“url”, “zzzzzzz.com”)
var nDuration : Double = System.getProperty(“steadyDuration”, “1” ).toDouble
var flowSelection=System.getProperty(“flowSelection”, allTypical)
var nDurationRamp : Double = System.getProperty(“rampDuration”, “1” ).toDouble
val execMap:scala.collection.mutable.Map[String, Double]= scala.collection.mutable.Map(
“API_pa_1” → 0,
“API_pa_2” → 0
)
util.initialize(allTypical,flowSelection,execMap);
val pa_data = csv(“data.csv”).random
val httpProtocol = http
.baseURL(“https://”+BASE_URL)
.acceptHeader(“text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”)
.acceptEncodingHeader(“gzip, deflate”)
.acceptLanguageHeader(“en-US,en;q=0.5”)
.connectionHeader(“keep-alive”)
.doNotTrackHeader(“1”)
.userAgentHeader(“Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:19.0) Gecko/20100101 Firefox/19.0”)
.proxy(Proxy(“proxy.net”, 80))
val logger = org.slf4j.LoggerFactory.getLogger(“websPerfLogger”)
val Scenario1=scenario(“Scenario1”)
.feed(pa_data)
.exec(Object1.Transaction1)
val Scenario2=scenario(“Scenario2”)
.feed(pa_data)
.exec(Object2.Transaction2)
val lst: ListBuffer[PopulationBuilder] = ListBuffer()
if(execMap(“API_pa_1”) > 0){
lst+= Scenario1.inject(rampUsersPerSec(0.1) to execMap(“API_pa_1”) during(nDurationRamp minutes),constantUsersPerSec(execMap(“API_pa_1”)) during(nDuration minutes))
}
if(execMap(“API_pa_2”) > 0){
lst+= Scenario2.inject(rampUsersPerSec(0.1) to execMap(“API_pa_2”) during(nDurationRamp minutes),constantUsersPerSec(execMap(“API_pa_2”)) during(nDuration minutes))
}
setUp(lst:_*).protocols(httpProtocol)
.assertions(
forAll.failedRequests.percent.lessThan(20),
forAll.responseTime.percentile3.lessThan(1500)
)
}