如何在加特林中检索响应标头并多次执行http调用?

时间:2019-08-21 04:17:58

标签: http response gatling rate-limiting scala-gatling

我正在尝试找到一种方法来从http调用响应中获取响应标头,例如X-RateLimit-Limit,X-RateLimit-Remaining等。 找不到在线资源或文档,有人可以帮忙吗? 启用日志记录后,我在控制台中看到了这些标头,但不知道如何从响应中检索这些标头。

http("Get API")
      .get("https://hello.com/list")
      .header("Authorization", "${auth}")
      .check(status.is(200))
      .check(bodyString.saveAs("Auth_Response"))

还有一种方法可以在一个时间范围内多次运行此http调用。我应该使用哪些内置方法来循环以及在特定时限内运行此特定的http调用?我在下面尝试过但未成功。理想情况下,我希望能够验证此API速率限制,因此可以尝试这种方式。尽管我逐渐了解到我不能同时使用repeat()duration(),但是它们具有两个我要实现的不同目的。即使只是在duration()中调用http请求构建器类型调用也会引发错误-“ 它与预期的ChainChainer类型不符

val scn1 =
during (60.seconds) {
  scenario("Setup scenario")
    .repeat(201){
      exec(
      http("Get API")
        .get("https://hello.com/list")
        .header("Authorization", "${auth}")
    )}
  setUp(
    scn1.inject(
      atOnceUsers(1)
    )
  )
}

无论我在setup()内还是在setup内放置setup(),都会导致错误。我正在尝试评估是否甚至需要after()。仅使用repeat(201)时,它会使API运行201次,并减少api的X-RateLimit-Remaining计数,但不足以达到0导致api错误代码响应。 请提供任何建议吗?

1 个答案:

答案 0 :(得分:1)

它位于https://gatling.io/docs/current/cheat-sheet/的备忘单中

.check(header(headerName))。is(...)