Для этого вы можете использовать метод .transform()
на bodyString
.Он принимает параметр функции типа String => T
или (String, Session) => T
и применяет его к телу ответа, поэтому в вашем случае это будет выглядеть так:
.check(
bodyString.transform(
(body: String, session: Session) => {
if(body.contains("success")){
File("/path/to/file")
.createFile()
.appendAll(session("attributeName").as[String])
}
}
)
)
- отредактировано -
чтобы сохранить часть тела запроса в сеансе, вам нужно сгенерировать эту часть отдельно, сохранить в атрибуте сеанса и использовать при создании тела.Например, давайте предположим, что вы хотите отправить JSON, содержащий 2 поля: некоторое постоянное значение + текущую метку времени, а затем сохранить метку времени в файл, если ответ содержит «success»:
val exampleScenario = scenario("Example")
.exec(session => {
session.set("timestamp", System.currentTimeMillis)
})
.exec(http("Send data")
.post("http://example.com")
.body(StringBody("""{"constant":123, "timestamp": ${timestamp}}"""))
.asJSON
.check(
bodyString.transform(
(body: String, session: Session) => {
if(body.contains("success")){
File("/path/to/file")
.createFile()
.appendAll(session("timestamp").as[String])
}
}
)
)
)