Gatling 会话变量在循环中返回相同的值

Gatling session variable is returning same value in a loop

我有下面的代码,这里变量“${Cookie}”总是返回相同的值(第一个)。在所有迭代中使用相同的 ${Cookie} 值调用第二个 API。如何为每次迭代设置会话变量?

val loginScenario = scenario("SignIn")
.repeat(100) {
  feed(csv(dataPath + "user_list_2.csv").circular)
  .exec(
    http("Sign In")
      .post("/members/sign_in")
      .queryParam("user[email]", "${email}")
      .queryParam("user[password]", "${password}")
      .check(status.is(200))
      .check(header("Set-Cookie").saveAs("Cookie"))
  )
  .exec(
    http("Current user Info")
      .get("/users/current_user_info")
      .header("cookie",  "${Cookie}")
      .check(status.is(200))
  )
}

Gatling 启用了 Cookie 支持,因此除非您在每次迭代中明确 flushing the CookieJar

  1. “登录”请求将在第一次迭代后发送一个 cookie,可能使其成为 noop
  2. .check(header("Set-Cookie").saveAs("Cookie")没用,Gatling 会帮你处理 cookie

不要这样设计你的测试,这是非常错误的。不要回收虚拟用户,否则您将回收连接和 SSL 会话并获得比您应有的更好的数字。

只需注入新用户。