如何解决Gatling中的constantUsersPerSecond
我正在使用加特林(Gatling)进行负载测试。
我已将所有查询(总共300万个查询)放在一个日志文件中,并将其加载到供稿中
val feeder = tsv(logFileLocation).circular
val search =
feed(feeder)
.exec(
http("/")
.get("${params}")
.headers(sentHeaders)
).pause(1)
对于仿真,我希望同时有50个用户,并且高峰请求为50 /秒,所以我采用这种方式进行设置
setUp(myservicetest.inject(atOnceUsers(50))).throttle(
reachRps(50) in (40 minutes),jumpToRps(20),holdFor(20 minutes)).maxDuration(60 minutes).protocols(httpProtocol)
我的假设是,这50个用户各自加载查询,并从fisr到最后一个查询开始。因为有足够的查询要执行,所以这50个用户将在整个持续时间(60分钟)内始终保持在线状态
但是当我运行它时,我看到user1运行query1,user2运行query2,.. user50运行query50。每个用户只运行1个查询,然后退出。因此,在负载测试中恰好执行了50个查询,并且查询很快完成了。
因此,我的问题是,假设我在tsv(logFileLocation).circular
中有3百万个查询,并且有多个用户,那么每个用户都会从query1开始并尝试执行所有3百万个查询。还是安排每个用户运行这3m个查询的一部分,如果分配了足够的时间,那么在测试结束时,所有3m个查询仅执行一次?
谢谢
解决方法
免责声明:Gatling的作者在这里
后者:“在测试结束时,所有3m个查询仅执行一次”。 每个虚拟用户都执行其方案。 注入配置文件仅控制何时启动新的虚拟用户。 如果希望虚拟用户执行多个请求,则必须将其包含在方案中,例如使用loops和pauses。
这些都是加特林的基础知识,我建议您看看我们刚刚开设的新Gatling Academy课程。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。