从初始的HTTP请求配置加特林基本URL

问题描述 投票:0回答:1

我对Scala和Gatling完全陌生,请原谅基本问题!

我想用初始http请求的结果指定的baseUrl创建一个http协议。或者换句话说:

  1. 获取远程配置为JSON,比方说https://example.com/config.json
  2. 解析JSON,检索指定的属性endpoint
  3. 将该值传递给http.baseUrl()

我可以在每种情况下手动完成此操作,但这很快就变得乏味(并且不必要地重复)。我想找到一个解决方案,可以在测试运行开始时一次执行此设置。

我的本能是去做这样的事情:

object Environment {
  val config = "https://example.com/config.json"
}

val httpProtocol = http("config")
    .get(Environment.config)
    .check(
      jsonPath("$.endpoint").saveAs("endpoint")
    )
    .baseUrl("${endpoint}")

// ... and then later on

setUp(
    // scenario.inject()…
  ).protocols(httpProtocol)

...但是无法编译。

非常感谢您的帮助。

scala gatling scala-gatling
1个回答
0
投票

您的建议不起作用。

。protocols使用HttpProtocolBuilder(在加特林网站上有记载),而您正在尝试传递HttpRequestBuilder

此外,HttpProtocolBuilder的baseUrl参数仅接受一个字符串,因此您将无法将加特林会话值传递给它。

我可以想到的唯一方法是使请求返回'before'块中的基本url,但是您将无法使用gatling dsl构造来进行该请求:用原始scala来做]

© www.soinside.com 2019 - 2024. All rights reserved.