我对Scala和Gatling完全陌生,请原谅基本问题!
我想用初始http请求的结果指定的baseUrl
创建一个http协议。或者换句话说:
endpoint
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)
...但是无法编译。
非常感谢您的帮助。
您的建议不起作用。
。protocols使用HttpProtocolBuilder(在加特林网站上有记载),而您正在尝试传递HttpRequestBuilder
此外,HttpProtocolBuilder的baseUrl参数仅接受一个字符串,因此您将无法将加特林会话值传递给它。
我可以想到的唯一方法是使请求返回'before'块中的基本url,但是您将无法使用gatling dsl构造来进行该请求:用原始scala来做]