首页 > 解决方案 > Gatling:随时保持固定数量的用户/请求

问题描述

我们如何在某个场景中同时保持固定数量的活动并发用户/请求。

我有一个独特的测试问题,我需要在给定时间段(如 10 分钟或 30 分钟或 1 小时)内对具有固定请求数量的服务进行性能测试。

我不是在寻找每秒的东西,我在寻找的是我们从 N 个请求开始,随着 N 个请求中的任何一个请求完成,我们再添加一个,以便在任何给定时刻我们只有 N 个并发请求。

我尝试过的事情是,rampUsers(100) over 10 seconds但我看到有时在给定实例中有超过 50 个用户。

constantUsersPerSec(20) during (1 minute)也采取了请求的数量 t0 50+ 一段时间。

atOnceUsers(20)似乎相关,但我看不到任何方法可以让它在给定的秒数内运行并在之前的请求完成时添加更多请求。

提前感谢您的社区,期待您的一些指导。

标签: gatlingscala-gatling

解决方案


有一个限制机制(https://gatling.io/docs/3.0/general/simulation_setup/#throttling)允许您设置最大请求数,但您必须记住,用户被注入到模拟中,而您必须注入足够多的用户来产生最大数量的请求,否则你最终会得到较低的请求/秒。此外,将被注入但由于限制而无法发送请求的用户将在队列中等待他们轮流。它可能会在油门结束后导致巨大的负载,或者可能会延长您的模拟,因此最好让油门时间长于喷射时间并maxDuration()在模拟设置中添加选项。

您还应该记住,受限制的模拟远非用户行为的自然方式。他们在打开页面或进行任何操作之前从不等待其他用户完成,因此在现实生活中,您总是会以每秒可变数量的请求结束。


推荐阅读