加特林性能或负载测试 - 如何配置模拟以缓慢上升并在峰值负载上保持 X 时间

Gatling Performance or Load Test - How to configure a simulation to ramp up slowly and hold X amount of time on the peak load

提问人:Maxim Vershinin 提问时间:11/18/2023 更新时间:11/24/2023 访问量:22

问:

如何在 Java 中配置模拟,使其缓慢地将请求提升到峰值,然后在峰值上保持 X 小时?

我们的 API 服务具有自动缩放策略,因此它需要缓慢增加请求才能使其在 QA 环境中扩展。

目前,我使用了 2 种类型的模拟(rampUsersstressPeakUsers)。我试图将两者结合起来,我该怎么做?

        setUp(
            productServiceScn.createProduct.injectOpen(rampUsers(81900).during(7200)).protocols(http.product)
        );

enter image description here

        setUp(
            productServiceScn.createProduct.injectOpen(stressPeakUsers(81900).during(7200)).protocols(http.product)
        );  

enter image description here

我想做这样的事情: enter image description here

性能 负载 加特林 压力测试 Scala-Gatling

评论

1赞 George Leung 11/18/2023
那你试过吗?rampUsersPerSecconstantUsersPerSec
0赞 Maxim Vershinin 11/25/2023
谢谢@GeorgeLeung,我试过了,它奏效了。感谢您的建议。

答:

1赞 TriNguyen 11/24/2023 #1

根据您的需要,我建议您使用封闭式工作负载模型(用户控制)和示例代码示例(我假设您不需要限制)

我下面的代码是 Scala 的,你必须自己将其转换为 Java

.inject(
           rampConcurrentUsers(1).to(YourDesireUser).during(UserRampup),
           constantConcurrentUsers(YourDesireUser).during(SteadyLength),
           rampConcurrentUsers(YourDesireUser).to(0).during(UserRampdown)
       )

在此块中,您将增加并发用户,建议将 YourDesireUser 与 UserRampup 匹配,以使注入速率为 1 个用户/秒。请注意,每个发起的用户都会立即发送请求

然后 constantConcurrentUsers 会将它们保留在所需的 SteadyLength 处。

最后,您逐渐降低,建议达到 1 个用户/秒的速率,以便优雅地停止用户。