【问题标题】:Configure gatling base url from initial http request从初始 http 请求配置加特林基本 url
【发布时间】:2019-10-21 20:23:44
【问题描述】:

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

我想创建一个带有baseUrl 的http 协议,该协议由初始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】:

    你的提议是行不通的。

    .protocols 需要一个 HttpProtocolBuilder(在 gatling 站点上记录),而您正在尝试传递一个 HttpRequestBuilder

    此外,HttpProtocolBuilder 的 baseUrl 参数只接受一个字符串,因此您将无法将 gatling session 值传递给它。

    我能想到的唯一方法是在“之前”块中发出返回基本 url 的请求,但您将无法使用 gatling dsl 构造来发出该请求:您将必须用原始的scala来做

    【讨论】:

      猜你喜欢
      • 2016-04-03
      • 2017-09-03
      • 1970-01-01
      • 2013-09-14
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      相关资源
      最近更新 更多