恒定吞吐量定时器JMeter

时间:2013-08-03 00:21:13

标签: jmeter throughput jmeter-plugins

我正在尝试使用我的所有线程实现3 TPS的目标。我使用Constant Throughput Timer但不知何故它不提供恒定的TPS。它确实超过了3 TPS,就像10TPS一样。


测试场景

线程组1

  • 此线程组在服务器上提交XML并检查状态。
  • 我在此提交报价操作下放置了常量计时器,并将值设置为每分钟3个。
  • 每次报价提交后,我都会执行一些操作。

线程组2

  • 此线程组在服务器上提交XML并将状态检查为第一个线程组,但其余操作与第一个不同。
  • 我在此提交报价操作下放置了常量计时器,并将值设置为每分钟3个。

线程组2

  • 此线程组在服务器上提交XML并将状态检查为第一个&第二个线程组,但其余动作不同于第一个&第二。
  • 我在此提交报价操作下放置了常量计时器,并将值设置为每分钟3个。

我需要3个TPS来自所有这些线程组的提交报价步骤,我能够实现这一点,但它不是恒定的。 enter image description here

有些人可以帮助管理TPS吗?

下面是图表,您可以看到一些高额交易: enter image description here

2 个答案:

答案 0 :(得分:0)

CTT会给你"常数"一段时间后的吞吐量,而不是测试显示的缩短时间。

您看到的峰值来自服务器响应时间的变化。

也许你可以尝试这种方法:

配置线程组:

  • 循环次数= 1

  • 加速期=测试时间(我的例子为3600秒)

  • 延迟线程创建,直到需要= true

  • 计划程序持续时间= 3600秒

  • 计划程序启动延迟= 0

  • 如果你跑1小时,达到每分钟3转,将线程数设置为180.

答案 1 :(得分:0)

我可以通过将操作分成多个线程来管理这一点。在我之前在线程1中的示例中,我正在执行一些影响CTT的操作。要解决问题,我正在使用队列概念。 enter image description here

  • 首先将您的主题分开,如果您花费时间的任何操作将它们移动到单独的主题。在下面的示例操作QuoteStatus和进一步是我的线程1的一部分,由于服务器响应缓慢,它不允许我CTT。

enter image description here

如果你看一下上面的第一个响应时间,它是非常常量的,有多个动作是一个线程导致问题。如果您的目标是提供恒定的吞吐量,那么最好在每个线程中保留一个操作,然后使用Inter_Thread Communication在其他线程中传递数据。