如何使用Gatling为每个HTTP请求添加默认标头?

时间:2017-04-11 17:21:40

标签: gatling dynatrace

我正在使用Dynatrace和Gatling进行性能分析和测试。 Dynatrace支持通过向每个HTTP请求添加标头来跟踪测试运行。我希望在动态测试guid中使用该标头,而不是在100个地方单独添加每个请求。

示例测试:

def GetLocationPage = exec(http(domain + "GetLocationPage")
.post("/location ")
.formParam("updateVersion", "1")

我知道我可以在每个请求中单独添加标题...

.headers(gatlingHeaders)

...但我的目标是避免在代码中完成那100个地方。基本上,我正在寻找一个与Spring中的this functionality相当的Gatling。

我在Gatling上找到this issue,但无法确定它是否有用。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以在创建http协议时直接配置默认标头,例如

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