斜坡和持有用户一段时间,然后再次斜坡
Posted
技术标签:
【中文标题】斜坡和持有用户一段时间,然后再次斜坡【英文标题】:Ramp and Hold Users for Some time and Ramp again 【发布时间】:2020-03-11 00:43:29 【问题描述】:我有以下场景要对服务进行负载测试,但它似乎没有按预期工作。我的场景如下。
在15 minutes duration
上使用rampUsers(100)
进行测试
让用户等待大约 10 分钟 holdFor(10 minutes)
然后又是rampUsers(200)
15 minutes duration
让用户等待大约 10 分钟 holdFor(10 minutes)
然后再次rampUsers(200)
超过15 minutes duration
我正在尝试为此使用throttle
选项,但它似乎没有按预期工作
这是我迄今为止尝试过的代码 sn-ps 组合
//NUM_USERS = 300
//DURATION = 15 minutes
//CONSTANT_DURATION = 5 minutes
// Tried with different combinations of NUM_USERS and DURATION but not helpful
scn.inject(
rampUsers(NUM_USERS*1) during DURATION,
constantUsersPerSec(1) during CONSTANT_DURATION,
rampUsers(NUM_USERS*2) during DURATION,
constantUsersPerSec(2) during CONSTANT_DURATION,
rampUsers(NUM_USERS*3) during DURATION,
constantUsersPerSec(3) during CONSTANT_DURATION
)
scn.inject(
rampUsers(NUM_USERS) during DURATION
).throttle(
reachRps(NUM_USERS/4) in (CONSTANT_DURATION),
holdFor(CONSTANT_DURATION),
jumpToRps(NUM_USERS/3),
holdFor(CONSTANT_DURATION),
jumpToRps(NUM_USERS/2),
holdFor(CONSTANT_DURATION)
)
scn.inject(
rampUsers(NUM_USERS) during DURATION
).throttle(
holdFor(CONSTANT_DURATION),
reachRps(NUM_USERS+NUM_USERS) in (DURATION+DURATION),
holdFor(CONSTANT_DURATION)
)
任何人都可以帮助解决这个问题。我想要这样的图表
【问题讨论】:
您的图表以每秒请求数为单位,但您的初始描述似乎与用户有关 - 您在追求什么? 图表只是为了便于理解..与用例无关..您可以忽略标签 所以你想定位并发用户?您的脚本没有反映这一点 我想保留用户而不是并发用户场景..想要达到一定级别的用户并保持该级别一段时间.. 【参考方案1】:要按照您在 cmets 中声明的目标注射率,您需要这样的东西
scn.inject(
rampUsersPerSec(0) to (300) during DURATION,
constantUsersPerSec(300) during CONSTANT_DURATION,
rampUsersPerSec(300) to (600) during DURATION,
constantUsersPerSec(600) during CONSTANT_DURATION,
...
)
【讨论】:
以上是关于斜坡和持有用户一段时间,然后再次斜坡的主要内容,如果未能解决你的问题,请参考以下文章