Hi all, I managed to do what you want but only in hacky way:
val initStarted = new AtomicBoolean(false)
val initCompleteLatch = new CountDownLatch(1)
scenario("myScenario")
.doIf(_ => initStarted.getAndSet(true) == false) {
exec(http("first")
.get("/endpoint")
.check(status.is(200),
jsonPath("$..response.id").findAll.saveAs("reponseVariable")
)
).exec { session =>
reponseVariable = session("reponseVariable").as[String]
initCompleteLatch.countDown()
session
}
}
.exec { session =>
initCompleteLatch.await()
session.set("reponseVariable", reponseVariable)
}
.exec(http("second")
.post("/another/endpoint/{responseVariable}")
.body(...)
.check(status.is(200))
)
Hope it helps :) It can chain serveral requests, passthrough response along, and ensures first request is send only once.