本文介绍了如何在加特林的两个场景之间传递价值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的脚本中有两种情况.我想将"CreateId"的值传递给第二种情况.我已经在第一种情况下保存了"CreateId".
I have two scenarios in my script. I want to pass value of "CreateId" to 2nd scenario. I have saved "CreateId" in 1st scenario.
错误说:
jsonPath($.id).find(0).exists,什么也没找到
jsonPath($.id).find(0).exists, found nothing
场景-1
val create = scenario("Create")
.exec(http("post_request_create")
.post("/api/asdf")
.headers(headers_10)
.body(StringBody(session =>s"""{"name": "${randomName()}"}""")).asJSON
.check(jsonPath("$.id")
.saveAs("CreateId"))
)
场景-2
val addTerm = scenario("Add Term")
.repeat (repeatCount){
exec(http("Add")
// NOT WORKING
//.post("""/api/asdfg/${CreateId}/terms""")
// NOT WORKING
.post(session => "/api/asdfg/" + session.get("CreateId").asOption[String] + "/terms")
.headers(headers_10)
.body(StringBody(session =>s"""{...somedata...}"""))
)
}
val scn = List(create.inject(atOnceUsers(1)),addTerm.inject(nothingFor(10 seconds), atOnceUsers(userCount)))
setUp(scn).protocols(httpProtocol)
推荐答案
尝试以下代码即可.希望对其他人有帮助.
var CreateId = ""
Scenario - 1
val create = scenario("Create")
.exec(http("post_request_create")
.post("/api/asdf")
.headers(headers_10)
.body(StringBody(session =>s"""{"name": "${randomName()}"}""")).asJSON
.check(jsonPath("$.id")
.saveAs("CreateId"))
)
.exec(session => {
CreateId = session("CreateId").as[String].trim
println("%%%%%%%%%%% ID =====>>>>>>>>>> " + CreateId)
session}
)
Scenario - 2
val addTerm = scenario("Add Term")
.exec(_.set("CreateId", CreateId)) // Set it here
.repeat (repeatCount){
exec(http("Add")
.post("""/api/asdfg/${CreateId}/terms""")
.headers(headers_10)
.body(StringBody(session =>s"""{...somedata...}"""))
)
}
val scn = List(create.inject(atOnceUsers(1)),addTerm.inject(nothingFor(10 seconds), atOnceUsers(userCount)))
setUp(scn).protocols(httpProtocol)
这篇关于如何在加特林的两个场景之间传递价值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!