目前,我正在使用Jmeter进行API性能测试,但最近我开始研究Gatling作为Jmeter的潜在替代品。下面是我为Gatling做的PoC,但是我注意到性能结果非常不同。
设置:
在这里,我们使用并发用户为10的https端点,持续60秒。
结果
计量器:10个线程(没有爬升),60秒
结果: 150 TPS
Gatling: 10个并发用户,也是60秒
结果: 27例TPS(cnt/s?)
问题:
首先,我想确认Gatling的术语;在Gatling结果图表中,我看到了一个名为“意思是cnt/s”的列,它在上面盘旋,上面写着“每秒事件的计数”,我想这和Jmeter的TPS是一样的吗?
Jmeter:
摘要+ 2386在00:00:16 = 153.1/s Avg
Gatling:
平均cnt/s: 26.652
如果上面的假设是正确的,是否有人能分享一些关于为什么Gatling的数字比Jmeter的要低的洞察力?
谢谢!
发布于 2022-10-11 22:35:20
Gatling: 10个并发用户,也是60秒
你知道这是干什么的吗?这将在现有用户每次完成时生成一个新用户,从而创建新的连接。假设一个虚拟用户需要100 as才能完成这个场景,那么您将生成10_10_60 =6,000个虚拟用户,并产生同样多的连接。这真的是你想要的吗?这和你用JMeter做的一样吗?
如果您实际上希望相同的10个用户循环60秒,则必须在场景中注入atOnceUsers(10)并添加一个during(60)循环。
https://gatling.io/docs/gatling/reference/current/core/injection/#open-model https://gatling.io/docs/gatling/reference/current/core/scenario/#loop-statements
发布于 2022-10-12 09:43:21
许多事情都会导致偏差。我假设您在负载生成器/目标进给量方面都使用相同的设置。您可以先从固定数量的请求开始。在in中使用循环,在Gatling中使用重复。例如,总共发送60x10=600个请求。如果使用得当,Gatling将能够产生比Jmeter高得多的负载。
https://stackoverflow.com/questions/74031681
复制相似问题