这是我的简单测试文件场景,只有一个用户:
setUp(scn.inject(constantUsersPerSec(1) during(60 seconds)))
.throttle(
//reachRps(20000) in (60 seconds),
//holdFor(1 minute)
//,
jumpToRps(20000),
holdFor(1 minutes)
)
.protocols(httpConf)
我尝试在60秒内达到20k rqs(最大值)或直接跳到20k并在1分钟内保持不变。
执行Gatling脚本后,这始终是我的结果:
Simulation finished Parsing log file(s)... Parsing log file(s) done Generating reports... ================================================================================ ---- Global Information -------------------------------------------------------- > request count 60 (OK=60 KO=0 ) > min response time 0 (OK=0 KO=- ) > max response time 2 (OK=2 KO=- ) > mean response time 1 (OK=1 KO=- ) > std deviation 0 (OK=0 KO=- ) > response time 50th percentile 1 (OK=1 KO=- ) > response time 75th percentile 2 (OK=2 KO=- ) > mean requests/sec 1.017 (OK=1.017 KO=- ) ---- Response Time Distribution ------------------------------------------------ > t 800 ms t > 1200 ms 0 ( 0%) > failed 0 ( 0%)
我不明白究竟是什么意味着这些结果...或者,或许,我没有为我的目标配置正确的方案。
我试过几个场景:
//setUp(scn.inject(atOnceUsers(20000)).protocols(httpConf))
//setUp(scn.inject(Users(200000).ramp(10)).protocols(httpConf))
//setUp(scn.inject(constantUsersPerSec(20000) during(1 seconds)).protocols(httpConf))
//setUp(scn.inject(constantUsersPerSec(20000) during(1 seconds))).protocols(httpConf)
//setUp(scn.inject(rampUsers(1500) over (60 seconds)))
//setUp(scn.inject(atOnceUsers(50000)))
// .throttle(jumpToRps(50000),
// holdFor(1 minutes))
// .protocols(httpConf)
setUp(scn.inject(constantUsersPerSec(1000) during(30 seconds)))
.throttle(
reachRps(20000) in (30 seconds),
holdFor(1 minute)
//,
//jumpToRps(20000),
//holdFor(1 minutes)
)
.protocols(httpConf)
所以,我不知道如何配置我的scala测试文件,只需获取类似的值:
> mean requests/sec 20000 (OK=20000 KO=- )
答案 0 :(得分:0)
你没有得到油门。来自documentation:
您仍然需要在方案级别注入用户。节流尝试 确保给定方案及其目标的吞吐量 注射配置文件(用户数量和持续时间)。这是一个瓶颈, 即上限。如果您没有提供足够的用户,则无法覆盖 油门。如果您的注射持续时间低于油门,那么 所有用户完成后,模拟将停止。如果你的 注射持续时间长于油门,模拟将停止 油门结束。
如果每秒只注射1个用户,你怎么能达到20000 rps?