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.
D. Sonntag, D. Porta, and J. Setz. Proceedings of the 4nd International Conference on Mobile Ubiquitous Computing, Systems, Services and Technologies (UBICOMM-10), page 170-175. IARIA/XPS (Xpert Publishing Services), (October 2010)