scala - Gatling - 我似乎无法在后续请求中使用从请求中存储的会话变量
scala - Gatling - I can't seem to use Session Variables stored from a request in a subsequent Request
代码:
package simulations
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class StarWarsBasicExample extends Simulation
{
// 1 Http Conf
val httpConf = http.baseUrl("https://swapi.dev/api/films/")
// 2 Scenario Definition
val scn = scenario("Star Wars API")
.exec(http("Get Number")
.get("4")
.check(jsonPath("$.episode_id")
.saveAs("episodeId"))
)
.exec(session => {
val movie = session("episodeId").as[String]
session.set("episode",movie)
}).pause(4)
.exec(http("$episode")
.get("$episode"))
// 3 Load Scenario
setUp(
scn.inject(atOnceUsers(1)))
.protocols(httpConf)
}
尝试从第一个 Get 请求中获取一个变量,并将该变量注入到第二个请求中,但尽管使用了文档,但还是无法做到。可能有些地方我不明白。
当我使用断点并在整个过程中导航时,会话执行似乎发生在其他两个请求都已完成之后(此时为时已晚)。似乎无法在两个请求之间执行该会话。
已在 Gatling's community mailing list 上回答。
"$episode"
不是正确的 Gatling 表达式语言语法。 "${episode}"
正确。
代码:
package simulations
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class StarWarsBasicExample extends Simulation
{
// 1 Http Conf
val httpConf = http.baseUrl("https://swapi.dev/api/films/")
// 2 Scenario Definition
val scn = scenario("Star Wars API")
.exec(http("Get Number")
.get("4")
.check(jsonPath("$.episode_id")
.saveAs("episodeId"))
)
.exec(session => {
val movie = session("episodeId").as[String]
session.set("episode",movie)
}).pause(4)
.exec(http("$episode")
.get("$episode"))
// 3 Load Scenario
setUp(
scn.inject(atOnceUsers(1)))
.protocols(httpConf)
}
尝试从第一个 Get 请求中获取一个变量,并将该变量注入到第二个请求中,但尽管使用了文档,但还是无法做到。可能有些地方我不明白。
当我使用断点并在整个过程中导航时,会话执行似乎发生在其他两个请求都已完成之后(此时为时已晚)。似乎无法在两个请求之间执行该会话。
已在 Gatling's community mailing list 上回答。
"$episode"
不是正确的 Gatling 表达式语言语法。 "${episode}"
正确。