如何将响应主体字段传递给其他请求的主体(Gatling)
How to pass response body field to other request's body (Gatling)
我有两个终点。
-/验证
-/authenticate/verification
/authenticate return 响应正文中的 guid 字段。
并且 /authenticate/verification 需要请求正文中的该字段。
我试过这样获取 guid :
jsonPath("$..guid").saveAs("verificationGuid")
并将其传递给其他机构:
.body(StringBody(s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}"))
这是代码块:
def login = {
exec(http("Authenticate")
.post("/authenticate")
.body(StringBody(userString))
.headers(headerLogin)
.check(status is 200)
.check(jsonPath("$..guid").saveAs("verificationGuid"))
)
.exec(http( "Authenticate verify")
.post("/authenticate/verify")
.headers(headerLogin)
.body(StringBody(s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}"))
.check(status is 200)
)
}
但是它不起作用,我该怎么做?
从 s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}")
中删除 s
。如果 s
在字符串前面,每个 ${something}
占位符将被视为 Scala 内置的字符串插值,编译器将尝试用 Scala 变量替换它,在您的情况下不存在。如果没有 s
,它将被视为文字字符串,然后被 Gatling EL Parser 捕获并替换为先前保存的 Gatling 会话属性。
我有两个终点。
-/验证
-/authenticate/verification
/authenticate return 响应正文中的 guid 字段。 并且 /authenticate/verification 需要请求正文中的该字段。
我试过这样获取 guid :
jsonPath("$..guid").saveAs("verificationGuid")
并将其传递给其他机构:
.body(StringBody(s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}"))
这是代码块:
def login = {
exec(http("Authenticate")
.post("/authenticate")
.body(StringBody(userString))
.headers(headerLogin)
.check(status is 200)
.check(jsonPath("$..guid").saveAs("verificationGuid"))
)
.exec(http( "Authenticate verify")
.post("/authenticate/verify")
.headers(headerLogin)
.body(StringBody(s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}"))
.check(status is 200)
)
}
但是它不起作用,我该怎么做?
从 s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}")
中删除 s
。如果 s
在字符串前面,每个 ${something}
占位符将被视为 Scala 内置的字符串插值,编译器将尝试用 Scala 变量替换它,在您的情况下不存在。如果没有 s
,它将被视为文字字符串,然后被 Gatling EL Parser 捕获并替换为先前保存的 Gatling 会话属性。