使用 jmeter 生成季节性负载模式

Generate seasonal load pattern using jmeter

我正在尝试使用 jmeter 生成季节性负载模式,但无法模拟这种情况。 例如,我希望系统中始终有每秒请求恒定的线程(例如,每秒 60 个请求)运行。另一个线程组负责生成季节性峰值,比如说每 10 分钟的间隔,它将每秒生成 120 个请求,持续 5 分钟。所以,每隔 10 分钟我就会有持续 5 分钟的尖峰。任何模拟这种情况的脚本或建议都会有所帮助。

如您所知,您需要 2 个线程组才能达到此要求。

线程组 1

您可以使用 Constant Throughput Timer 来维持每秒 60 个请求的吞吐量。

This timer introduces variable pauses, calculated to keep the total throughput (in terms of samples per minute) as close as possible to a give figure. Of course the throughput will be lower if the server is not capable of handling it, or if other timers or time-consuming test elements prevent it.

线程组 2:

要创建季节性峰值,Ultimate Thread Group might be a good choice or We can also use the regular thread group with Constant Timer 模拟 10 分钟的间隔和线程组的启动延迟 属性 以提供初始延迟(如果有)。

要仅生成 5 分钟的负载,请使用 Runtime Controller。 您将需要另一个 Constant Throughput Timer 来维持此线程组中每秒 60 个请求的吞吐量。

  1. 使用 "Scheduler" 选项将您的线程组设为 运行 永久或 select 所需持续时间:

  2. 在第一个线程组中添加Constant Throughput Timer并配置如下:

    • 目标吞吐量:3600(每秒 60 个请求 * 每分钟 60 秒)
    • 计算吞吐量基于:我认为最佳值是 all active threads in current thread group
  3. 在第 2 个线程组中添加 Throughput Shaping Timer 并配置如下:

    您可以使用不同的加速和减速数字,图表会发生变化以表示您的负载模式。

请记住,两个计时器都不会启动任何额外的线程,因此您必须在线程组级别提供足够的线程才能创建和维持所需的负载。