我的脚本中有两个场景。我想将“CreateId”的值传递给第二个场景。我在第一个场景中保存了“CreateId”。
错误说:
未定义名为“CreateId”的属性
jsonPath($。id).find(0).exists,什么都没找到
情景 - 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)
答案 0 :(得分:4)
尝试使用以下代码并且有效。希望它能帮助他人。
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)