Hai,
I try to set local variables to add in param and then session variables to replace in templates . but getting error.
My Template:
{
“requestHeader”: {
“serviceContext”: {
“serviceId”: “${serviceId}”,
“token”: “${token}”,
“nonce”: “${nonce}”,
“otpToken”: “${otpToken}”
},
“clientContext”: {
“country”: “${country}”,
“channel”: “${channel}”,
“userName”: “${userName}”,
“password”: “${password}”
},
“userContext”: {
“userId”: ${userId},
“sessionId”: “${sessionId}”,
“language”: “${language}”
}
}
}
My Scala code:
package basic
import io.gatling.core.Predef._
import io.gatling.core.session.Expression
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._
import io.gatling.http.Headers.Names._
import io.gatling.http.Headers.Values._
import scala.concurrent.duration._
import bootstrap._
import assertions._
class LoginSimulation extends Simulation {
//Variables
var serviceId=“12345”
println(serviceId)
var token:String=null
// var nonce:String=null
// var otpToken:String=null
//
// var country:String = null
// var channel :String= null
// var userName:String = null
// var password :String= null
//
// var userId :String= null
// var sessionId :String= null
// var language:String = null
//
// var LoginuserId :String= null
// var Loginpassword :String= null
// var captcha:String = null
// var securityNonce:String = null
val httpProtocol = http
.baseURL(“https://localhost:8080”)
.acceptHeader(“application/json, text/javascript, /; q=0.01”)
.acceptEncodingHeader(“gzip, deflate”)
.acceptLanguageHeader(“en-US,en;q=0.5”)
.connection(“keep-alive”)
.userAgentHeader(“Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0”)
val headers_1 = Map(
“”“Cache-Control”"" → “”“no-cache”"",
“”“Content-Type”"" → “”“application/json; charset=UTF-8"”",
“”“Pragma”"" → “”“no-cache”"",
“”“X-Requested-With”"" → “”“XMLHttpRequest”"")
// val rand = math.random.toString();
val scn = scenario(“Login-Logout”)
.exec(
session => {
session.set(“serviceId”,"")
session.set(“token”,"")
session.set(“nonce”,"")
session.set(“otpToken”,"")
session.set(“country”,"")
session.set(“channel”,"")
session.set(“userName”,"")
session.set(“password”,"")
session.set(“userId”,"")
session.set(“sessionId”,"")
session.set(“language”,"")
println(session)
session
})
//initlogin
.exec(http(“initLogin”)
.post("/services/security/initLogin?rand="+math.random.toString())
.headers(headers_1)
.param(“authenticity_token”,$token)
.body(ELFileBody(“InitLogin_request.txt”))
.check(status.is(200))
)
.pause(5)
.feed(csv(“user_credentials.csv”))
.exec(http(“Login”)
.post("/services/security/login?rand="+math.random.toString())
.headers(headers_1)
.param(“username”, “${username}”)
.body(ELFileBody(“Login_request.txt”))
.check(status.is(200))
)
.pause(6)
//logout
.exec(http(“Logout”)
.post("/services/security/logout?rand="+math.random.toString())
.headers(headers_1)
.body(ELFileBody(“Logout_request.txt”))
.check(status.is(200))
)
setUp(scn.inject(atOnce(1 user))).protocols(httpProtocol)
}
-Bala