如何使用 Gatling 向每个 HTTP 请求添加默认值 header?
How can I add a default header to each HTTP request with Gatling?
我正在使用 Dynatrace 和 Gatling 进行性能分析和测试。 Dynatrace 通过向每个 HTTP 请求添加 header 来支持跟踪测试运行。我希望 header 带有动态测试 guid,而不是将它单独添加到每个请求中的 100 个位置。
示例测试:
def GetLocationPage = exec(http(domain + "GetLocationPage")
.post("/location ")
.formParam("updateVersion", "1")
我知道我可以在每个请求中单独添加 header...
.headers(gatlingHeaders)
...但我的目标是避免在代码中做那 100 多个地方。本质上,我正在寻找等同于 Spring 中的 this functionality 的 Gatling。
我在 Gatling 上找到了 this issue,但无法确定它是否有用。
有什么建议吗?
您可以在创建 http 协议时直接配置默认值 headers,例如
val httpConf = http
// Here is the root for all relative URLs
.baseURL("http://computer-database.gatling.io")
// Here are the common headers, via specialized methods
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("en-US,en;q=0.5")
.userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0")
// More generic methods are available too
.header("foo", "bar") // to set one header
.headers(Map("foo" -> "bar", "baz" -> "qix")) // to set a bunch of headers
val scn = scenario("Scenario Name")
.exec(http("request_1").headers(...) // This is for single request, but you know it already
.get("/")) // etc...
setUp(scn.inject(atOnceUsers(1)).protocols(httpConf))
有关详细信息,请参阅文档 Http Headers
我正在使用 Dynatrace 和 Gatling 进行性能分析和测试。 Dynatrace 通过向每个 HTTP 请求添加 header 来支持跟踪测试运行。我希望 header 带有动态测试 guid,而不是将它单独添加到每个请求中的 100 个位置。
示例测试:
def GetLocationPage = exec(http(domain + "GetLocationPage")
.post("/location ")
.formParam("updateVersion", "1")
我知道我可以在每个请求中单独添加 header...
.headers(gatlingHeaders)
...但我的目标是避免在代码中做那 100 多个地方。本质上,我正在寻找等同于 Spring 中的 this functionality 的 Gatling。
我在 Gatling 上找到了 this issue,但无法确定它是否有用。
有什么建议吗?
您可以在创建 http 协议时直接配置默认值 headers,例如
val httpConf = http
// Here is the root for all relative URLs
.baseURL("http://computer-database.gatling.io")
// Here are the common headers, via specialized methods
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("en-US,en;q=0.5")
.userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0")
// More generic methods are available too
.header("foo", "bar") // to set one header
.headers(Map("foo" -> "bar", "baz" -> "qix")) // to set a bunch of headers
val scn = scenario("Scenario Name")
.exec(http("request_1").headers(...) // This is for single request, but you know it already
.get("/")) // etc...
setUp(scn.inject(atOnceUsers(1)).protocols(httpConf))
有关详细信息,请参阅文档 Http Headers