如何使用恒定吞吐量计时器,在一小时内指定每秒最多4个并发用户。

13

我需要创建一个负载测试,其中每秒最多有4个并发用户。然后我需要重复这个测试一个小时。

在JMeter中是否有任何方法可以实现这一点?

我尝试使用以下配置:

  • 线程数: 4
  • 启动时间: 1
  • 循环计数: 永久
  • 持续时间: 3600

为了确保它可以运行一小时,我还使用了一个Runtime Controller,具有相同的“3600”运行时间值。

但是这样会创建比我需要的更多的并发用户,而且通常用户在执行某些操作之前需要一些时间来思考,这在我的配置中没有反映出来,因此我还尝试过使用Constant Throughput Timer,但这只让我更加困惑。

  • 我确定我需要使用Constant Throughput Timer,但我不知道如何在我的情况下使用它。
  • 如果我使用Constant Throughput Timer,如何配置线程属性(线程数、启动时间、循环计数、计划)?
  • 我真的需要使用Runtime Controller来确保测试计划运行一小时吗,还是只需指定持续时间为3600即可?
1个回答

21

常量吞吐量计时器允许您维持服务器的吞吐量(请求数/秒)。其中请求是取样器,线程是使用取样器请求服务器的用户/客户端。

我希望这已经清楚区分了请求和用户,即取样器和线程。

现在,常量吞吐量计时器基于每分钟的取样器数工作。因此,对于您需要每秒4个请求的要求,它变为每分钟240个请求。

并且您想在所有线程之间(如果您有多个线程组)或在单个线程组之间维护此吞吐量。

因此,JMeter引擎将以给定的逐步上升启动所有线程,但只允许在给定的时间内执行4个取样器,即每秒仅4个请求。从而在所有线程之间实现吞吐量,并且您可以使用以下方法之一在指定的时间内继续执行:

  1. 测试持续时间
  2. 运行时控制器

进入图像描述

我希望这解决了您的困惑并解决了问题。


非常感谢@Nachiket。还有几个问题:1)根据您展示的配置,如何配置线程组(线程数、ramp-up时间、循环次数等)?2)当我使用恒定吞吐量计时器时,在执行的第一分钟总是会得到额外的请求,这正常吗?如果是,有什么解释吗?再次感谢。 - Axel
2
个人认为,比起JMeter内置的恒定吞吐量定时器,吞吐量整形定时器更加准确:http://jmeter-plugins.org/wiki/ThroughputShapingTimer/ - Ophir Prusak
1
非常感谢@OphirPrusak,但是请问您能否举个例子来说明如何为我在问题中描述的场景配置线程组?虽然有一些示例,但它们从未展示如何在控制器或常量使用时配置线程组 - Axel
是的,我同意Ophir的观点,吞吐量整形计时器也是一个不错的选择。 - Nachiket Kate
嗯,仍然有点困惑。我以为“requests”与“用户/线程”是相同的。 - eddy
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接