【发布时间】:2020-10-29 15:00:42
【问题描述】:
我的问题在某种程度上与 this 和 this 相关,但不知何故并没有真正回答我的问题。
我的测试用例非常简单,我需要在一段时间内(例如 60 秒)不断生成持续活跃的并发用户(例如 10 个并发用户)。
我的代码是这样的
val TestProtocolBuilder: HttpProtocolBuilder = http.baseUrl("https://computer-database.gatling.io")
object Test {
val test =
exec(http("Test_Only")
.get("/computers")
.check(status.in(200, 404))
)
}
val TestOnly = scenario("Test Only").exec(Test.test)
setUp(
TestOnly.inject(
constantConcurrentUsers(10) during(60 seconds)
).protocols(TestProtocolBuilder)
)
这个documentation 说
constantConcurrentUsers(nbUsers) during(duration) : 注入使得系统中的并发用户数恒定
我希望有 10 个并发活跃用户在 60 秒内不断访问 API。不超过 10 个用户,并且任何时候不低于 10 个用户。
我在 HTML 报告中看到的是,任何给定时间的活跃用户都远高于 10(几乎翻了一番)。
向 documentation 学习,它说
此图表显示模拟期间的活跃用户:总数和每个场景。 “活跃用户”既不是“并发用户”也不是“用户到达率”。它是一种混合指标,适用于开放式和封闭式工作负载模型,代表“在给定秒数负载下活跃在系统上的用户”。
计算如下: (前一秒的活跃用户数) + (这一秒内启动的用户数) - (前一秒内终止的用户数)
问题:
- 为什么 Gatling 在测试期间不断终止用户并启动新用户?有什么意义?
- 如果
constantConcurrentUsers(10) during(60 seconds)给我一个更高的活跃用户并在测试期间保持波动,我如何才能在测试期间获得恒定的 10 个并发活跃用户(不多也不少)继续访问我的 API?我需要坚持我的测试用例,而不是过度加载 API。 - 在上图中,在给定时间
the number of request = 7和the active users = 20。这是否意味着在给定时间,有 7 个活跃用户发出请求,并且有 20 - 7 = 13 个活跃用户闲置等待从 API 返回的响应?
谢谢。
【问题讨论】:
标签: performance-testing gatling scala-gatling