accessing user defined variables

I have captured the values with variables “Order_id” & “Maxnum” , And from the custom code written I have retrieved “maximum value” & its related “Order id” from the list “Order_Id” & “Maxnum” but couldn’t able to access them in the next request block using ${maxval},${orderid}

Please let me know how to access them

Captured values(sample output) :

Order_id : List(bkl4Y051L0FmeG9meVZXZnNXVUNyQT09LS1nWmFvdUM0eUZYYkhQZ0h3WmR0MUlnPT0=–4584d12746742a955cf3bbbf265239839fd21dd4, UVlZUHM5cFRkWlFMVUMxQ3NhMFNQQT09LS1OYUpGYmsvZmdrSDlScmRuQmhOU1FnPT0=–fd74a8d0622748d8a6b9addcbb47d62e84fb11a7, azVmMDJmM0NCSzQ0K0FlSTRmaHh6dz09LS1POC81QytOVjhOMm4rZE1EY1pDcU93PT0=–6adbdc3fb4ce9275b6d49451c8f228b932cd8eb7, em1BTWVUSEdycGY1NDkrTWRucXg1UT09LS1oN2cxNEJFdy9Ib3RqTEJDYnRKUkl3PT0=–54ef48fe600142eaabc239169e7baed3295d804c, Mm56RWxsNjFxSGE2ZGZyNDZxR2o5dz09LS1mZHgrcDlIUXlJRVRBRTlqVkJWbGV3PT0=–7b3966ab2cd33fe413d47aa781c47ab34a64ae3b)

Maxnum : List(53, 296, 72, 41, 65)

Code snippet :

.exec(http(“request_7”)

.post("/start")

.headers(headers_0)

.formParam(“utf8”, “✓”)

.formParam(“authenticity_token”, “${authenticity_token2}”)

.formParam(“challenger[step_id]”, “${challenger_id2}”)

.formParam(“challenger[step_number]”, “2”)

.formParam(“challenger[age]”, “${randnum}”)//age

.formParam(“commit”, “Next”)

.check(

regex("""""").find.saveAs(“authenticity_token3”)

)

.check(

regex("""""").find.saveAs(“challenger_id3”)

)

.check(

regex(""“name=“challenger[order_selected]” type=“radio” value=”(.*?)" />""").findAll.saveAs(“Order_id”)

)

.check(

regex(""“for=”.?">(.?)""").findAll.saveAs(“Maxnum”)

)

.resources(http(“request_8”)

.get(uri4 + “”)

.headers(headers_1))

)

Custom code:

.exec{ session =>

val myOrderIds= session(“Order_id”).as[List[String]]

println(myOrderIds)

val numb = session(“Maxnum”).as[List[Int]]

println(numb)

//val Id = numb(1).toString.toInt

//println(numb.length)

var max = 0

for(i ← 0 until numb.length)

{

val m1 = numb(i).toString.toInt

if (m1 > max)

{

max = m1

}

}

println(max)

var maxval = max.toString

var idx = numb.indexOf(maxval).toString.toInt

println(numb.indexOf(maxval))

var orderid = myOrderIds.apply(idx)

session.set(“orderid”, orderid) .set(“maxval”, maxval)

session

}

Next Request block :

.exec(

http(“request_9”)

.post("/start")

.headers(headers_0)

.formParam(“utf8”, “✓”)

.formParam(“authenticity_token”, “${authenticity_token3}”)

.formParam(“challenger[step_id]”, “${challenger_id3}”)

.formParam(“challenger[step_number]”, “3”)

.formParam(“challenger[largest_order]”, “${maxval}”)

.formParam(“challenger[order_selected]”, “${orderid}”)

.formParam(“commit”, “Next”)

.resources(http(“request_10”)

.get(uri4 + “”)

.headers(headers_1))

)

Hi,

The session is immutable, and the “set” method returns a new session (it doesn’t mutate the session).

Therefore you need to return the return value of the “set” call in your exec block and not the original session in order to get the new values in your next block.