经营场所
- 将API置于标量/喷雾中
- 总是返回OK的简单方法
- 我试图实现平均每秒2万个请求
- 两台机器(测试人员和测试人员(配置良好(EC2专用服务器,每台服务器都只有其API和Gatling配置文件sudo sysctl-w net.ipv4.ip_local_port_range="1025 65535"echo 300000 | sudo tee/proc/sys/fs/nr_openecho 300000 | sudo tee/proc/sys/fs/file max,/etc/security/limits.conf,ulimit-a-->65535(
这是我的简单测试文件场景,只有一个用户:
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脚本后的结果:
模拟完成正在分析日志文件。。。分析日志文件已完成正在生成报告。。。================================================================================----全球信息-------------------------------------------------------->请求计数60(OK=60 KO=0(>最小响应时间0(OK=0 KO=-(>最大响应时间2(OK=2 KO=-(>平均响应时间1(OK=1 KO=-(>标准偏差0(OK=0 KO=-(>响应时间第50百分位1(OK=1 KO=-(>响应时间第75百分位2(OK=2 KO=-(>平均请求数/秒1.017(OK=1.017 KO=-(----响应时间分布------------------------------------------------>t 800 ms t>1200 ms 0(0%(>失败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测试文件,以便简单地获得这样的值:
>平均请求数/秒20000(OK=20000 KO=-(
您没有正确控制油门。来自文件:
您仍然需要在场景级别注入用户。限制性尝试以确保给定场景及其注入配置文件(用户数量和持续时间(。这是一个瓶颈,(上限(。如果你没有提供足够的用户,你就无法访问节气门。如果你的注射持续时间少于油门当所有用户都完成时,模拟将简单地停止。如果您喷射持续时间超过油门,模拟将在节气门的末端。
在每秒只注射1个用户的情况下,你怎么能期望达到20000转/秒?