http - 如何在gatling中检索响应 header 并多次执行http调用?

标签 http response gatling rate-limiting scala-gatling

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

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

还有一种方法可以在一个时间范围内多次运行此 http 调用。我应该使用哪些内置方法来循环以及在一定的时间限制内运行此特定的 http 调用?我在下面尝试过但没有成功。理想情况下,我希望能够验证此 API 速率限制,因此尝试了这种方式。虽然我开始明白我不能同时使用重复()持续时间(),但它们有两个我想实现的不同目的。即使只是在 period() 中调用 http 请求构建器类型调用也会引发错误 - “它不符合预期类型 ChainBuilder

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() 放在 while() 内部还是外部,都会导致错误。我正在尝试评估是否需要在()期间。仅使用repeat(201)时,它会导致API运行201次并减少api的X-RateLimit-Remaining计数,但还不够达到 0 导致错误代码响应。 请提供任何建议吗?

最佳答案

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

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

关于http - 如何在gatling中检索响应 header 并多次执行http调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57584369/

相关文章:

http - 我可以将 HTTP 重定向发送到带有 anchor 的 url 吗?

java - 参数未在 POST 方法 REST Java 中传递

c# - 对我的应用程序需要与之通信的每个主机使用一个HttpClient实例是否可以?

list - 如何将List从Servlet发送到JSP

java - 对 PUT/POST 的 RESTful 响应

java - 如何在 session 中提取 vector ?

web-services - 在运行时为 SMS Web 服务交付设置主机和端口时 TIdHTTP 出错

c# - Response.WriteFile 两次写入内容

scala - 在 Gatling 中请求超时

scala - 加特林 - 在测试期间提取 cookie 值字符串