如何将响应正文字段传递给其他请求的正文(加特林)

时间:2018-08-24 20:49:35

标签: scala testing simulation load-testing gatling

我有两个终点。

-/验证

-/验证/验证

/ authenticate 返回响应正文上的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)
    )
  }

但是它不起作用,我该怎么办?

1 个答案:

答案 0 :(得分:2)

s中删除s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}")。如果s在字符串前面,则每个${something}占位符都将被视为内置于字符串插值的Scala,编译器将尝试用Scala变量替换它,在您的情况下不存在。如果没有s,它将被视为原义字符串,而不是被Gatling EL Parser捕获,并被先前保存的Gatling会话属性取代。