如何使用 JMeter 模拟缓慢的上升?

How to use JMeter to get a simulate a slow ramp up?

我们有一些外部顾问正在使用 JMeter 对我们的应用程序进行负载测试。

我们的应用程序由一个网站和两个移动应用程序组成。我们通常的使用模式是有 20 个用户和 x 个我们在应用程序中跟踪的移动用户。我们的模式通常是稳定的,但一年中的某些时候我们的负担会更重。我们没有看到从没有 activity 到 300 个移动用户的峰值。它将相当稳定和可靠地上升。我们希望确保我们的缩放设置能够在下次开始添加负载时处理。

我们的合作伙伴编写了从 0 负载(零 CPU %、零带宽使用、零 SQL 等)到然后在大约 15 分钟内结束的大量负载的脚本。这不是我们的使用模式。没有一点时间,我们的系统无法横向扩展。

我告诉他们我们的使用模式,但他们在使用 JMeter 进行更稳定和缓慢的提升时遇到了问题。我对该工具知之甚少,但我想这是一个非常典型的用例。

有任何提示或想法可以让我们朝着正确的方向前进,或者 JMeter 是否不适合这项任务?

我喜欢为此使用 Throughput Shaping Timer JMeter 插件。您可以指定加速、满载、减速等的持续时间。它非常灵活。我喜欢将这些值设置为参数,这样我就可以从命令行传递不同的值以获得灵活性,而不必在不同的测试运行之间打开和编辑脚本。

https://jmeter-plugins.org/wiki/ThroughputShapingTimer/

这不应该是火箭科学,因为正常的 JMeter Thread Group 在 15 分钟内从 0 增加到 300 个用户看起来像:

因此将 Ramp-up period 更改为 1800 足以将用户到达率降低 2 倍。

Custom Thread Groups 更容易,因为您可以直观地看到用户到达图表:

所以这是一个简单的算术问题,应该不难。

如果需要,请查看 JMeter Ramp-Up - The Ultimate Guide 了解更多详细信息。