如何将响应主体字段传递给其他请求的主体(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 会话属性。