刚开始使用Gatling并要求进行Spike测试。我试图找出如何做到这一点,因为我无法找到一种方法来减少用户。
我希望做类似的事情 -
setUp(
scn.inject(
atOnceUsers(100),
nothingFor(20 minutes), //think this should hold a flat load for 20 minutes
rampUsers(900) over (60 seconds) // ramps 900 users over 60 secs,
//need something to drop the load back to original state
)
).protocols(httpProtocol)
我的另一个想法是使用2个情景组并进行平坦负载运行,让第二个在20分钟内什么也不做,然后只是飙升,完成它并完成,让初始组完成。
由于
答案 0 :(得分:0)
您是否尝试使用example of throttling in the docs?
setUp(scn.inject(constantUsersPerSec(100) during (30 minutes))).throttle(
reachRps(100) in (10 seconds),
holdFor(1 minute),
jumpToRps(50),
holdFor(2 hours)
)
我自己没有使用它,但使用reachRps
可能对你有用。我正在尝试概述您的方案,以便您明白这一点:
setUp(scn.inject(constantUsersPerSec(100) during (30 minutes))).throttle(
reachRps(100) in (10 seconds),
holdFor(20 minutes),
reachRps(900) in (60 seconds), //ramp up
holdFor(1 minute),
reachRps(100) in (60 seconds), //ramp down again
holdFor(20 minutes)
)
这只是一个大纲,您肯定必须为您的用例调整constantUsersPerSec
,请参阅以下文档:
您仍然需要在方案级别注入用户。节流尝试 确保给定方案及其目标的吞吐量 注射配置文件(用户数量和持续时间)。这是一个瓶颈, 即上限。如果您没有提供足够的用户,则无法覆盖 油门。如果您的注射持续时间低于油门,那么 所有用户完成后,模拟将停止。如果你的 注射持续时间长于油门,模拟将停止 油门结束。