加特林性能测试:TPS远低于Jmeter的TPS



我目前正在使用Jmeter进行API性能测试,但最近我开始研究Gatling作为Jmeter的潜在替代品。以下是我为加特林做的PoC,但我注意到表现结果非常不同。

设置:
在这里,我们使用并发用户10达到https端点,持续60秒。

结果
Jmeter:10个线程(无上升(,60秒
结果:150 TPS

门控:10个并发用户,60秒
结果:27 TPS(cnt/s?(

问题:
首先我想确认Gatling的术语;在Gatling结果图表中平均cnt/s";我在上面徘徊,上面写着">每秒事件计数";,我想这和Jmeter的TPS是一样的吧

Jmeter:
00:00:16汇总+2386=153.1/s平均
门控:
平均cnt/s:26.652

若上述假设是正确的,有人能分享一些关于为什么加特林的数字远低于杰米特的数字的见解吗?

谢谢!

门控:10个并发用户,还有60秒

你明白这是怎么回事吗?这将在现有用户每次完成时产生一个新用户,从而创建新的连接。假设一个虚拟用户需要100毫秒才能完成场景,那么你将产生10个1060=6000个虚拟用户和同样多的连接。这真的是你想要的吗?这和你用JMeter做的是一样的吗?

如果你真的想让同样的10个用户循环60秒,你必须注入atOnceUsers(10)并在你的场景中添加一个during(60)循环。

https://gatling.io/docs/gatling/reference/current/core/injection/#open-模型https://gatling.io/docs/gatling/reference/current/core/scenario/#loop-报表

很多事情都会导致偏差。我假设您在负载生成器/目标insance方面对两者使用相同的设置。您可以先从固定数量的请求开始。在Jmeter中使用循环,在Gatling中重复。例如,总共发送60 x 10=600个请求。如果使用得当,Gatling将能够产生比Jmeter高得多的负载。

最新更新